高精做的
#include<bits/stdc++.h>
using namespace std;
struct fbnq{
string s;
};
int arr1[9999900];
int arr2[9999900];
int arr3[9999900];
fbnq f[1010];
string add(int n){
int len1=f[n-1].s.size();
int len2=f[n-2].s.size();
for(int i=0;i<len1;i++){
arr1[i]=f[i-1].s[len1-1-i]-'0';
}
for(int i=0;i<len2;i++){
arr2[i]=f[i-2].s[len2-1-i]-'0';
}
int len=max(len1,len2);
for(int i=0;i<len;i++){
arr3[i]+=arr1[i]+arr2[i];
arr3[i+1]+=arr3[i]/10;
arr3[i]%=10;
}
if(arr3[len]){
len++;
}
string s1="";
for(int i=len-1;i>=0;i--){
s1+=arr3[i];
}
return s1;
}
int main(){
f[1].s="1";
f[2].s="1";
int n,m;
cin>>n>>m;
for(int i=3;i<=n;i++){
f[i].s=add(i);
}
cout<<f[n-m+1].s;
return 0;
}