{
TASK: fib
LANG:PASCAL
}

Program Fib;

 Var N, M, I: Longint;
     A, B, C, S1, S2: String;

 Function Func(X, Y: String): Longint;
  Var L, G: Integer;
      T, Z, J: Longint;
      St, Stri: String;
  Begin
   St := '';
   Val(Y, Z, G);
   L := Length(Y);
   For J := 1 to L do
    Begin
     Stri := Copy(X, J, 1);
     St := St + Stri;
     Val(St, T, G);
     T := T mod Z;
     Str(T, St);
    End;
   Val(St, T, G);
   Func := T;
  End;

 Function F(X, Y: String): String;
  Var Ost, Sb, L, U, P, Q: Longint;
      Z: Integer;
      St, Stri: String;
  Begin
   St := '';
   L := (Length(X) + Length(Y) + abs(Length(X) - Length(Y))) div 2;
   For U := 1 to L - Length(Y) do Insert('0', Y, 1);
   For U := 1 to L - Length(X) do Insert('0', X, 1);
   Ost := 0;
   For U := L downto 1 do
    Begin
     Val(X[U], P, Z);
     Val(Y[U], Q, Z);
     Sb := P + Q + Ost;
     Ost := Sb div 10;
     Sb := Sb mod 10;
     Str(Sb, Stri);
     Insert(Stri, St, 1);
    End;
   If Ost = 1 then Insert('1', St, 1);
   F := St;
  End;


 Begin
  ReadLn(N, M);
  A := '1'; B := '1';
  For I := 3 to N do
   Begin
    C := F(A, B);
    A := B; B := C;
   End;

  S1 := C;

  A := '1'; B := '1';
  For I := 3 to M do
   Begin
    C := F(A, B);
    A := B; B := C;
   End;

  S2 := C;
  WriteLn(Func(S1, S2));
 End.
