/**********************************************************************************/
/* Problem: a568 "ISSC 2012- problem B" from ISSC 2012 */
/* Language: CPP (549 Bytes) */
/* Result: AC(1.8s, 256KB) judge by this@ZeroJudge */
/* Author: lfs92002 at 2014-06-26 17:18:54 */
/**********************************************************************************/
#include<cstdio>
using namespace std;
int mpow(int a,int e,int m)
{
if(e==0)return 1;
int p=mpow(a*a%m,e/2,m);
if(e%2==0)return p;
return p*a%m;
}
int main()
{
const int ansOfNe1=14;
int N,M;
while(~scanf("%d%d",&N,&M))
{
int En=mpow(10,N-1,M);
int sum=0;
//K=1
sum=(10*En-En)%M;
//K=2
sum+=(5*En-En)%M;
//K=5
sum+=(2*En-En)%M;
//K=4 for N>=2
if(N>=2)
sum+=(25*mpow(10,N-2,M)-En+25*M)%M;
//K=8 for N>=3
if(N>=3)
sum+=(125*mpow(10,N-3,M)-En+125*M)%M;
printf("%d\n",sum%M);
}
}