#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10;
int z;
char x[N],y[N];
struct Node{
int v[N];
int len;
};
Node operator +(Node a,Node b){
int len=max(a.len,b.len);
for(int i=1;i<=len;++i){
b.v[i]+=a.v[i];
if(b.v[i]>=z){
b.v[i+1]+=b.v[i]/z,b.v[i]%=z;
}
}
int res=b.v[len]/z;
b.v[len]%=z;
while(res>0){
++len;
b.v[len]+=res/z;
res%=z;
}
b.len=len;
return b;
}
Node turn(char a[N]){
int len=strlen(a+1);
Node ans;
ans.len=len;
for(int i=1;i<=len;++i){
if(a[i]>='0'&&a[i]<='9'){
ans.v[len-i+1]=a[i]-'0';
}else{
ans.v[len-i+1]=a[i]-'A'+10;
}
}
return ans;
}
int main(){
scanf("%d%s%s",&z,x+1,y+1);
Node A=turn(x),B=turn(y);
B=A+B;
for(int i=B.len;i>=1;--i){
if(B.v[i]<10){
printf("%d",B.v[i]);
}else{
printf("%c",B.v[i]-10+'A');
}
}
return 0;
}