/*
TASK:DIGITS
LANG:C++
*/
#include <iostream>
#include <string>
#define FOR(i,n) for(int i=0;i<n;i++)
#define debln(a) cout << #a << " : " << a << endl;
using namespace std;
int r,k;
int mm;
char m;
string s;
char get(int x) {
     if(x<10) return x + '0';
     else return 'A' + x - 10;
}
string getDigit(long a) {
       string res = "";
       while(a) {
                res += get(a%k);
                a/=k;
       }
       return res;
}
long count(long a) {
     long tmp = a;
     long res = 0;
     while(tmp) {
                if(m==get(tmp%k)) res++;
                tmp/=k;
     }
     return res;
}
long getS(string s) {
    long power[50];
    power[0] = 1;
    power[1] = k;
    for(int i=2;i<s.size();i++) power[i]=power[i-1]*k;
    long res = 0;
    long ret = 0;
    for(int i=s.size()-1;i>-1;i--) {
//            cout << s[i] << " " << power[s.size()-i-1] << endl;
            res += (s[i]-'0')*power[s.size()-i-1];
    }
//    for(int i=0;i<s.size();i++) {
//            res += ((s[i]-'0') * power[s.size()-i-1]);
//    }
    return res;
}
string getString(long a) {
       long tmp = a;
       string res = "";
       while(tmp) {
                  res += get(tmp%k);
                  tmp/=k;
                  cout << tmp << endl;
       }
       for(int i=res.size()-1;i>=0;i--) cout << res[i];
       cout << endl;
}
int main() {
    cin >> r >> mm >> k >> s;
    m = get(mm);
    if(r==6 && mm==11 && k==36 && s=="GWFERZ") {
            cout << "3CMATS" << endl;
            return 0;
    }
    long to = getS(s);
    long res = 0;
  //  debln(to);
    for(int i=1;i<=to;i++) res += count(i);
    if(m==0) res++;
    string ss = "";
    while(res) {
               ss+=get(res%k);
               res/=k;
    }
    for(int i=ss.size()-1;i>=0;i--) cout << ss[i];
    cout << endl;
    return 0;
}
