/*
TASK:fib
LANG:C
*/

#include<stdio.h>

#define MAX 100

int main()
{
	unsigned long m,n;
	unsigned long i,j,k,c;
	c=1;
	int fib[2][MAX];
	for(i=1;i<MAX;i++)
		fib[0][i]=fib[1][i]=0;
	fib[0][0]=fib[1][0]=1;
	
	scanf("%ld%ld",&n,&m);

	for(i=2;i<n;i+=2)
	{
		for(j=0;j<c;j++)
		{
			fib[0][j]+=fib[1][j];
			k=j;
			while(fib[0][k]>9)
			{
				fib[0][k]-=10;
				k++;
				fib[0][k]++;
			}
			if(k>c)
				c=k;
		}	
		for(j=0;j<c;j++)
		{
			fib[1][j]+=fib[0][j];
			k=j;
			while(fib[1][k]>9)
			{
				fib[1][k]-=10;
				k++;
				fib[1][k]++;
			}
			if(k>c)
				c=k;
		}	
	}
	
	j=0;
	c--;
	i=(n+1)%2;

/*	while(c>=0)
	{
		while((j<m)&&(c>=0))
		{
			j*=10;
			j+=fib[i][c];
			c--;
		}
		j%=m;
	}
*/
	printf("%ld\n",j);
	return 0;
}