#include <functional> #include <iostream> #include <string> #include <vector> #include "cmath" using namespace std; int Chartoint(string n) { int sum = 0; for (int i = 0; i < n.size(); i++) { sum = sum + (n[i]-'0') * pow(10, n.size() - i - 1); } return sum; } string add(string a, string b) { float alast, blast; int la = a.size(), lb = b.size(); int i = 0, j = 0, s = 0; int ra, rb; int wei = 0; int he = 0; string sum; ra = Chartoint(a); rb = Chartoint(b); if (a.size() >= b.size()) { while (lb) { alast = (a[--la] - '0'); ra = ra / pow(10, i++); blast = (b[--lb] - '0'); rb = rb / pow(10, j++); he = alast + blast + wei; wei = 0; if (he >= 10) { wei = 1; he = he % 10; } a[la] = he+'0'; } while (wei == 1) { la--; if ((a[la] - '0' + wei < 9)) { a[la] = a[la] + 1; wei = 0; } else { a[la] = '0'; wei = 1; } } if (la == 0&&wei==1) { a = "1" + a; } return a; } else { while (la) { alast = (a[--la] - '0'); ra = ra / pow(10, i++); blast = (b[--lb] - '0'); rb = rb / pow(10, j++); he = alast + blast + wei; wei = 0; if (he >= 10) { wei = 1; he = he % 10; } b[lb] = he + '0'; } while(wei==1 ) { lb--; if ((b[lb] - '0' + wei < 9)) { b[lb] = b[lb] + 1; wei = 0; } else { b[lb] = '0'; wei = 1; } } if (lb == 0&& wei == 1) { b = "1" + b; } return b; } } string Divide(string str, int x) { int re = 0; for (int i = 0; i < str.size(); i++) { int current = re * 10 + str[i] - '0'; str[i] = current / x + '0'; re = current % x; } int pos = 0; while (str[pos] == '0') { pos++; } return str.substr(pos); } int main() { string a, b; int m; int i; vector<float> answer; cin >> m; cin >> a >> b; if (a == "0" && b == "0") { cout << "0"; } else { string sum = add(a, b); long long int nsum = 0; for (i = 0; i < sum.size(); i++) { nsum = (sum[i]-'0') * pow(10, sum.size() - i - 1) + nsum; } while (nsum!= 0) { answer.push_back(nsum % m); nsum = nsum / m; } for (i = answer.size() - 1; i >= 0; i--) { cout << answer[i]; } } } // 64 位输出请用 printf("%lld")