/*
TASK:fib
LANG:C++
*/
#include <vector>
#include <iostream>

using namespace std;
vector <long long> dig;

int main()
{long long  a,b,x,m,n,br=3;
a=1;
b=2;
cin>>n>>m;

if (m==1) {cout<<"0\n";return 0;}
if (m==2) {a=n%3;
           if (a==0) cout<<"0\n";
                else cout<<"1\n";
           return 0;
           }
dig.push_back(1);
dig.push_back(1);
dig.push_back(2);

//cout<<"1 1 2 ";

while(a!=1||b!=1||br!=n){
                         x=(a+b)%m;
  //                       cout<<x<<" ";
                         a=b;
                         b=x;
                         br++;
                         dig.push_back(x);
                         if (a==1&&b==0) {if (n%br==0) cout<<"0\n";
                                           else cout<<dig.at(n%br-1)<<endl;
                                          return 0;}
                         
                         if (br==n)break;
                         }
cout<<x<<endl;; 
return 0;
}
