/*
TASK:fib
LANG:C
*/
#include<stdio.h>
int main()
{
 char n[15],m[7],j[15]="3",a1[1000]="1",a2[1000]="1",a3[1000],c;
 int fl=0,i,naum,br,k;
 scanf("%s %s",&n,&m);
 for(i=0;n[i];i++) ;
 br=i;
 for(i=0,k=br-1;i<br/2;i++,k--)
  { c=n[i]; n[i]=n[k]; n[k]=c; }
 for(i=0;m[i];i++) ;
 br=i;
 for(i=0,k=br-1;i<br/2;i++,k--)
  { c=m[i]; m[i]=m[k]; m[k]=c; }
 while(!fl)
 {
  naum=0;
  i=0;
  while(a2[i]){ a1[i]=a2[i]; i++;}
  k=i; i=0;
  while(a3[i]) { a2[i]=a3[i]; i++;}
  while(a2[k]) { a1[k]='0'; k++; }
  for(i=0;a2[i];i++)
  {
    a3[i]=((a1[i]-'0')+(a2[i]-'0')+naum)%10+'0';
    naum=((a1[i]-'0')+(a2[i]-'0')+naum)/10;
  }
  if(naum) a3[i]=naum+'0';
  fl=1;
  for(i=0;j[i];i++)
   if(j[i]!=n[i]) { fl=0; break;}
  if(!fl)
   {
     i=0;
     if(j[i]=='9')
     {
      while(j[i]=='9')
       {  j[i]='0'; i++;  }
      j[i]='1';
     }
     else j[i]=(j[i]-'0')+1+'0';
   }
 }
 for(i=0;a3[i];i++);
 if(i<br)
 {
  for(i-=1;i>=0;i--) printf("%c",a3[i]);
  return 0;
 }
 if(i==br)
 {
  fl=0;
  for(k=0;a3[k];k++)
   if(a3[k]!=m[k]) {fl=1; break;}

  if(!fl) { printf("0"); return 0; }
 }
 if(i>br)
 {
   for(k=br;k<=i;k++) m[k]='0'; fl=0;
   while(!fl)
   {
    for(k=0;a3[k];k++)
     {
      if(a3[k]>=m[k]) a3[k]=(a3[k]-'0')-(m[k]-'0')+'0';
      else
       {
          a3[k]=10+(a3[k]-'0')-(m[k]-'0')+'0';
          if(a3[k+1]!='0') a3[k+1]=(a3[k+1]-'0')-1+'0';
          else
          {
           while(a3[k]==0) k--;
           a3[k+1]=(a3[k+1]-'0')-1+'0';
          }
       }
     }
    fl=1;
    if(a3[k]>m[k]) fl=0;
    if(a3[k]==m[k])
     while(a3[k]==m[k]) k--;
    if(k<0) { printf("0"); return 0; }
    else fl=0;
   }
 }
 if(a3[k]=='0')
  while(a3[k]=='0') k--;
 for(;k>=0;k--) printf("%c",a3[k]);
 return 0;
}
