#include<cstdio>
#include<cmath>
#include<map>
#include<stack>
using namespace std;
int main(){
	int a,b;
	char s[20];
	while (scanf("%d %s %d", &a, &s, &b) != EOF){
		stack<int> hhh;
		map<char, int>mymap = {
			{ '0', 0 }, { '1', 1 }, { '2', 2 },
			{ '3', 3 }, { '4', 4 }, { '5', 5 },
			{ '6', 6 }, { '7', 7 }, { '8', 8 },
			{ '9', 9 }, { 'a', 10 }, { 'b', 11 },
			{ 'c', 12 }, { 'd', 13 }, { 'e', 14 },
			{ 'f', 15 }, { 'A', 10 }, { 'B', 11 },
			{ 'C', 12 }, { 'D', 13 }, { 'E', 14 },
			{ 'F', 15 }
		};
		int k = -1; 
		for (int i = 0; s[i] != '\0'; i++){
			k++;
		}
		long num=0;
		for (int i = 0; s[i] != '\0'; i++){
			num = num+mymap[s[i]] * pow(a, k);
			k--;
		}
		while (num != 0){
			int p = num%b;
			hhh.push(p);
			num=num/b;
		}
		while (!hhh.empty()){
			if (hhh.top() >= 0 && hhh.top() <= 9){
				printf("%d", hhh.top());
			}
			else if (hhh.top() == 10){
				printf("A");
			}
			else if (hhh.top() == 11){
				printf("B");
			}
			else if (hhh.top() == 12){
				printf("C");
			}
			else if (hhh.top() == 13){
				printf("D");
			}
			else if (hhh.top() == 14){
				printf("E");
			}
			else if (hhh.top() == 15){
				printf("F");
			}
			hhh.pop();
		}
		printf("\n");
	}
}