#include <iostream>
#define MAXN 1000
using namespace std;

char code[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int stack[MAXN];//栈
int top = -1;

//判断栈空 
bool isempty(){
	return top < 0;
} 

//出栈 
int pop(){
	int r = stack[top];
	top--;//指针下移 
	return r;
}

//入栈 
void push(int value){
	top++;
	stack[top] = value;
}

//转换:n转换为d进制 
void conversion(int n,int d){
	while(n != 0){
		push(n % d);
		n = n / d;
	}	
} 

int main(){
	int n,d;
	cin>>n>>d;
	conversion(n,d);
	if(isempty()){
		cout<<0<<endl;
	}else{
		//输出栈的内容 
		while(!isempty()){
			cout<<code[pop()]; 
		}
		cout<<endl;
	}
    return 0;
}

/**************************************************************
	Problem: 1415
	User: admin
	Language: C++
	Result: Accepted
	Time:30 ms
	Memory:2076 kb
****************************************************************/