#include <iostream>
#include <vector>
#include <cstdlib>

using namespace std;

const int pow5[] = {0, 1, 32, 243, 1024, 3125, 7776, 16807, 32768, 59049};

int main() {
    // Najvise za 6-znamenkaste brojeve ima sanse da budu jednaki
    // zbroju petih potencija svojih znamenki. Jer vec za 7 znamenki
    // najmanji 7-znamenkasti broj je 1000000, a 7*59049 = 413343 je
    // najveci zbroj 7 petih potencija koji se moze dostici.
    // Za 6-znamenkaste se najvise isplati traziti do 6*59049 = 354294.

    int sum = 0, temp, sumznam;
    for (int n = 10; n != 354295; ++n) {
	temp = n; sumznam = 0;
	while (temp > 0) {
	    sumznam += pow5[temp % 10];
	    temp /= 10;
	}
	if (sumznam == n)
	    sum += n;
    }
    cout << sum << endl;

    return EXIT_SUCCESS;
}
