/*
 * Greater NY Regional - Rational Base
 * Fred Pickel
 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <string.h>

#define MAX_P	62
#define MAX_DIGITS 40

#ifdef LINUX
typedef long long DLONG;
#else
typedef __int64 DLONG;
#endif
int digits[MAX_DIGITS+1];
char digitString[MAX_DIGITS+1];
char *digitLookup = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

int GCD(int a, int b)
{
	int c;
	if(a == 0) return b;
	if(b == 0) return a;
	if(a < 0) a = -a;
	if(b < 0) b = -b;
	c = a % b;
	while(c > 0) {
		a = b;
		b = c;
		c = a % b;
	}
	return b;
}

/*
 * n = a0 + (p/q)*(a1 + a2*(p/q) + ...)
 * so n - a0 is divisiible by p and a0 is n % p
 * then recurse on a1 + a2*(p/q) + ... = (n - a0)*(q/p)
 */
int FindDigits(int p, int q, int n)
{
	int i, ret, digit;
	i = 0;
	while((n > 0) && (i <= MAX_DIGITS)){
		digit = n % p;
		digits[i] = digit;
		n = ((n - digit)/p);
		n = q*n;
		i++;
	}
	if(n > 0) {
		return -1;
	}
	ret = i;
	for(i = 0; i < ret; i++) {
		digitString[ret - i - 1] = digitLookup[digits[i]];
	}
	digitString[ret] = 0;
	return ret;
}

// check answer 64 bit int since p*n could overflow a 32 bit int
int validate(int p, int q, int n, int ndig)
{
	int i;
	DLONG val;
	val = 0;
	for(i = ndig - 1; i >= 0; i--) {
		val = val*p;
		if((val % q) != 0) {
			fprintf(stderr, "val %lld not divisible by q at digit %d (p %d q %d n %d)\n",
				val, i, p, q, n);
			return -1;
		}
		val  = val/q;
		val += digits[i];
	}
	if(val != n) {
		fprintf(stderr, "val %lld != n %d (p %d q %d ndig %d)\n",
			val, n, p, q, ndig);
		return -2;
	}
	return 0;
}

char inbuf[256];

int main()
{
	int  p, q, n, ret;

	// get p, q, n
	if(scanf("%d %d %d", &p, &q, &n) != 3)
	{
		fprintf(stderr, "scan failed on problem header\n");
		return -6;
	}
	if((p > MAX_P) || (p <= 1))
	{
		fprintf(stderr, "P %d not in range 2 .. %d\n", p, MAX_P);
		return -8;
	}
	if((q <= 1) || (q >= p) || (GCD(p, q) != 1)) {
		fprintf(stderr, "Q %d not in range 2 .. %d OR not relatively prime to P %d\n",
			q, p - 1, p);
		return -9;
	}
	if((n < 1) || (log(n) > MAX_DIGITS*(log(p) - log(q)))) {
		fprintf(stderr, "N %d not in range 1 .. (P/Q)^%d\n",
			n, MAX_DIGITS);
		return -10;
	}
	ret = FindDigits(p, q, n);
	if(ret < 0) {
		fprintf(stderr, "N %d too many digits\n", n);
		return -11;
	}
	if(validate(p, q, n, ret) != 0) {
		return -12;
	}
	printf("%s\n", digitString);
	return 0;
}

