#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_set>
#include <random>
#ifdef _MSC_VER
# include <intrin.h>
# define __builtin_popcount __popcnt
#endif
//#include <atcoder/all>
//using namespace atcoder;
//typedef modint998244353 mint;
using namespace std;
typedef long long int lld;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<lld, lld> pll;
typedef vector<int> vi;
typedef vector<lld> vl;
typedef vector<ld> vld;
typedef vector<char> vch;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef vector<double> vd;
typedef vector<pii> vpii;
typedef vector<pll> vpll;
typedef vector<vi> vivi;
typedef vector<vl> vlvl;
typedef vector<vch> vcvc;
typedef vector<vb> vbvb;
typedef vector<vs> vsvs;
const int mod = 2012;
const int inf = 1LL << 28;
const int nom = 1000000;
int mul(int a, int k)
{
int tp = 1;
while (k--)
tp *= a;
return tp;
}
int main()
{
cin.tie(NULL), cout.tie(NULL);
ios::sync_with_stdio(false);
int a, b, k;
lld fin = 0;
cin >> a >> b >> k;
for (int i = a; i <= b; ++i)
{
int tp = i, tp2, mn;
set<int> st;
mn = i;
st.insert(i);
while (1)
{
tp2 = 0;
while (tp)
{
tp2 += mul(tp % 10, k);
tp /= 10;
}
if (st.find(tp2) != st.end())
break;
else
st.insert(tp2);
mn = min(mn, tp2);
tp = tp2;
}
fin += mn;
}
cout << fin;
cout << '\n';
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlIDxyYW5kb20+CiNpZmRlZiBfTVNDX1ZFUgojCWluY2x1ZGUgPGludHJpbi5oPgojCWRlZmluZSBfX2J1aWx0aW5fcG9wY291bnQgX19wb3BjbnQKI2VuZGlmCgovLyNpbmNsdWRlIDxhdGNvZGVyL2FsbD4KLy91c2luZyBuYW1lc3BhY2UgYXRjb2RlcjsKLy90eXBlZGVmIG1vZGludDk5ODI0NDM1MyBtaW50OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbGQ7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGQ7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gcGlpOwp0eXBlZGVmIHBhaXI8bGxkLCBsbGQ+IHBsbDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiB2ZWN0b3I8bGxkPiB2bDsKdHlwZWRlZiB2ZWN0b3I8bGQ+IHZsZDsKdHlwZWRlZiB2ZWN0b3I8Y2hhcj4gdmNoOwp0eXBlZGVmIHZlY3RvcjxzdHJpbmc+IHZzOwp0eXBlZGVmIHZlY3Rvcjxib29sPiB2YjsKdHlwZWRlZiB2ZWN0b3I8ZG91YmxlPiB2ZDsKdHlwZWRlZiB2ZWN0b3I8cGlpPiB2cGlpOwp0eXBlZGVmIHZlY3RvcjxwbGw+IHZwbGw7CnR5cGVkZWYgdmVjdG9yPHZpPiB2aXZpOwp0eXBlZGVmIHZlY3Rvcjx2bD4gdmx2bDsKdHlwZWRlZiB2ZWN0b3I8dmNoPiB2Y3ZjOwp0eXBlZGVmIHZlY3Rvcjx2Yj4gdmJ2YjsKdHlwZWRlZiB2ZWN0b3I8dnM+IHZzdnM7Cgpjb25zdCBpbnQgbW9kID0gMjAxMjsKY29uc3QgaW50IGluZiA9IDFMTCA8PCAyODsKY29uc3QgaW50IG5vbSA9IDEwMDAwMDA7CgppbnQgbXVsKGludCBhLCBpbnQgaykKewoJaW50IHRwID0gMTsKCgl3aGlsZSAoay0tKQoJCXRwICo9IGE7CgoJcmV0dXJuIHRwOwp9CgppbnQgbWFpbigpCnsKCWNpbi50aWUoTlVMTCksIGNvdXQudGllKE5VTEwpOwoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJCglpbnQgYSwgYiwgazsKCWxsZCBmaW4gPSAwOwoKCWNpbiA+PiBhID4+IGIgPj4gazsKCglmb3IgKGludCBpID0gYTsgaSA8PSBiOyArK2kpCgl7CgkJaW50IHRwID0gaSwgdHAyLCBtbjsKCQlzZXQ8aW50PiBzdDsKCgkJbW4gPSBpOwoJCXN0Lmluc2VydChpKTsKCgkJd2hpbGUgKDEpCgkJewoJCQl0cDIgPSAwOwoKCQkJd2hpbGUgKHRwKQoJCQl7CgkJCQl0cDIgKz0gbXVsKHRwICUgMTAsIGspOwoJCQkJdHAgLz0gMTA7CgkJCX0KCgkJCWlmIChzdC5maW5kKHRwMikgIT0gc3QuZW5kKCkpCgkJCQlicmVhazsKCQkJZWxzZQoJCQkJc3QuaW5zZXJ0KHRwMik7CgoJCQltbiA9IG1pbihtbiwgdHAyKTsKCQkJdHAgPSB0cDI7CgkJfQoJCQoJCWZpbiArPSBtbjsKCX0KCgljb3V0IDw8IGZpbjsKCQoJY291dCA8PCAnXG4nOwoKCXJldHVybiAwOwp9