//这道题的思路十分好,f[1][1]=1,f[2][1]=2;//初始化nb,这里所有的数就是由1和2组成的(这句话真nb),还有高精度的练习,太细了
#include <cstdio>
using namespace std;
int n,m,len=1;
int f[1005][1005];
void plus(int x)
{
for(int i=1;i<=len;i++)
f[x][i]=f[x-1][i]+f[x-2][i];
for(int i=1;i<=len;i++)//步数上的高精度
if(f[x][i]>9)
{
f[x][i+1]+=f[x][i]/10;
f[x][i]%=10;
}
if(f[x][len+1]) len++;//补一
}
int main ()
{
scanf("%d%d",&m,&n);
f[1][1]=1,f[2][1]=2;//初始化nb,这里所有的数就是由1和2组成的
for(int i=3;i<=n-m;i++) plus(i);//步数
for(int i=len;i;i--) printf("%d",f[n-m][i]);
return 0;
}