/*
TASK: DIGITS
LANG: C
*/
#include<stdio.h>

#define MAXN 1048576

int b[MAXN];
char a[MAXN],c[MAXN<<3];

int main()
{
        int i,j,m,k,len,br=0,t;
        scanf("%d%d%d",&len,&k,&m); gets(a);
        gets(a);
        for(i=0;i<len;i++)
        {
                t=(a[i]>='0'&&a[i]<='9')?a[i]-'0':a[i]-'A'+10;
                if(i<len-1) b[i+1]+=t*(len-i-1);
                b[i]+=br*t;
                if(t>k) b[i]++;
                else if(t==k) br++;
        }
        b[len-1]+=br;
        t=0,j=0;
        for(i=len-1;i>=0||t;i--)
        {
                if(i>=0) c[j]=(b[i]+t)%m;
                else c[j]=t;
                if(c[j]<=9) c[j]+='0';
                else c[j]+='A'-10;
                t=(b[i]+t)/m;
                j++;
        }
        for(i=j-1;i>=0;i--) printf("%c",c[i]);
        printf("\n");
        return 0;
}

