#include <iostream>
#include <string>
#include <vector>
using namespace std;
#define sz(x) (int((x).size()))
typedef vector<int> vi;
typedef long long llong;
int DigToNumber(char c) {
if( c <= '9' && c >= '0' )
return c-'0';
return c-'A'+10;
}
char NumberToDig(int n) {
if( n < 10 )
return '0'+n;
return n-10+'A';
}
const int base = 1000*1000*1000;
void mulint(vi& a, int b) {
for(int i = 0, carry = 0; i < sz(a) || carry; i++) {
if( i == sz(a) )
a.push_back(0);
llong cur = carry + a[i] * 1LL * b;
a[i] = int(cur%base);
carry = int(cur/base);
}
while( sz(a) > 1 && a.back() == 0 )
a.pop_back();
}
int divint(vi& a, int d) {
int carry = 0;
for(int i = sz(a)-1; i >= 0; i--) {
llong cur = a[i] + carry * 1LL * base;
a[i] = int(cur/d);
carry = int(cur%d);
}
while( sz(a) > 1 && a.back() == 0 )
a.pop_back();
return carry;
}
void add(vi& a, vi& b) {
for(int i = 0, c = 0, l = max(sz(a),sz(b)); i < l || c; i++) {
if( i == sz(a) )
a.push_back(0);
a[i] += ((i<sz(b))?b[i]:0) + c;
c = a[i] >= base;
if( c ) a[i] -= base;
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int from, to; cin >> from >> to;
string s; cin >> s;
vi res(1,0); vi m(1,1); vi tmp;
for(int i = sz(s)-1; i >= 0; i--) {
tmp.assign(m.begin(), m.end());
mulint(tmp,DigToNumber(s[i]));
add(res,tmp); mulint(m,from);
}
vi ans;
while( sz(res) > 1 || res.back() != 0 )
ans.push_back(divint(res,to));
if( sz(ans) == 0 )
ans.push_back(0);
for(int i = sz(ans)-1; i >= 0; i--)
cout << NumberToDig(ans[i]);
cout << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBzeih4KSAoaW50KCh4KS5zaXplKCkpKQp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIGxvbmcgbG9uZyBsbG9uZzsKIAppbnQgRGlnVG9OdW1iZXIoY2hhciBjKSB7CiAgICBpZiggYyA8PSAnOScgJiYgYyA+PSAnMCcgKQogICAgICAgIHJldHVybiBjLScwJzsKICAgIHJldHVybiBjLSdBJysxMDsKfQpjaGFyIE51bWJlclRvRGlnKGludCBuKSB7CiAgICBpZiggbiA8IDEwICkKICAgICAgICByZXR1cm4gJzAnK247CiAgICByZXR1cm4gbi0xMCsnQSc7Cn0KIApjb25zdCBpbnQgYmFzZSA9IDEwMDAqMTAwMCoxMDAwOwoKdm9pZCBtdWxpbnQodmkmIGEsIGludCBiKSB7CiAgICBmb3IoaW50IGkgPSAwLCBjYXJyeSA9IDA7IGkgPCBzeihhKSB8fCBjYXJyeTsgaSsrKSB7CiAgICAgICAgaWYoIGkgPT0gc3ooYSkgKQogICAgICAgICAgICBhLnB1c2hfYmFjaygwKTsKICAgICAgICBsbG9uZyBjdXIgPSBjYXJyeSArIGFbaV0gKiAxTEwgKiBiOwogICAgICAgIGFbaV0gPSBpbnQoY3VyJWJhc2UpOwogICAgICAgIGNhcnJ5ID0gaW50KGN1ci9iYXNlKTsKICAgIH0KICAgIHdoaWxlKCBzeihhKSA+IDEgJiYgYS5iYWNrKCkgPT0gMCApCiAgICAgICAgYS5wb3BfYmFjaygpOwp9CmludCBkaXZpbnQodmkmIGEsIGludCBkKSB7CiAgICBpbnQgY2FycnkgPSAwOwogICAgZm9yKGludCBpID0gc3ooYSktMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBsbG9uZyBjdXIgPSBhW2ldICsgY2FycnkgKiAxTEwgKiBiYXNlOwogICAgICAgIGFbaV0gPSBpbnQoY3VyL2QpOwogICAgICAgIGNhcnJ5ID0gaW50KGN1ciVkKTsKICAgIH0KICAgIHdoaWxlKCBzeihhKSA+IDEgJiYgYS5iYWNrKCkgPT0gMCApCiAgICAgICAgYS5wb3BfYmFjaygpOwogICAgcmV0dXJuIGNhcnJ5Owp9CnZvaWQgYWRkKHZpJiBhLCB2aSYgYikgewogICAgZm9yKGludCBpID0gMCwgYyA9IDAsIGwgPSBtYXgoc3ooYSksc3ooYikpOyBpIDwgbCB8fCBjOyBpKyspIHsKICAgICAgICBpZiggaSA9PSBzeihhKSApCiAgICAgICAgICAgIGEucHVzaF9iYWNrKDApOwogICAgICAgIGFbaV0gKz0gKChpPHN6KGIpKT9iW2ldOjApICsgYzsKICAgICAgICBjID0gYVtpXSA+PSBiYXNlOwogICAgICAgIGlmKCBjICkgYVtpXSAtPSBiYXNlOwogICAgfQp9CiAKaW50IG1haW4oKSB7CiAgIAogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgICAgCiAgICBjaW4udGllKDApOwogICAKICAgIGludCBmcm9tLCB0bzsgY2luID4+IGZyb20gPj4gdG87CiAgICBzdHJpbmcgczsgY2luID4+IHM7CiAgICB2aSByZXMoMSwwKTsgdmkgbSgxLDEpOyB2aSB0bXA7CiAgICBmb3IoaW50IGkgPSBzeihzKS0xOyBpID49IDA7IGktLSkgewogICAgCXRtcC5hc3NpZ24obS5iZWdpbigpLCBtLmVuZCgpKTsKICAgICAgICBtdWxpbnQodG1wLERpZ1RvTnVtYmVyKHNbaV0pKTsKICAgICAgICBhZGQocmVzLHRtcCk7IG11bGludChtLGZyb20pOwogICAgfQogICAgdmkgYW5zOwogICAgd2hpbGUoIHN6KHJlcykgPiAxIHx8IHJlcy5iYWNrKCkgIT0gMCApCiAgICAgICAgYW5zLnB1c2hfYmFjayhkaXZpbnQocmVzLHRvKSk7CiAgICBpZiggc3ooYW5zKSA9PSAwICkKICAgICAgICBhbnMucHVzaF9iYWNrKDApOwogICAgZm9yKGludCBpID0gc3ooYW5zKS0xOyBpID49IDA7IGktLSkKICAgICAgICBjb3V0IDw8IE51bWJlclRvRGlnKGFuc1tpXSk7CiAgICBjb3V0IDw8ICJcbiI7CiAKICAgIHJldHVybiAwOwp9Cg==