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

using namespace std;

const unsigned fact[] = {1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880};

int main() {
    // isplati se pretrazivati najvise 7-znamenkaste brojeve i to
    // do 362880*7 = 2540160
    unsigned sum = 0u, temp, sumznam;
    for (unsigned n = 10u; n != 2540161u; ++n) {
	temp = n; sumznam = 0u;
	while (temp > 0u) {
	    sumznam += fact[temp % 10u];
	    temp /= 10u;
	}
	if (sumznam == n) {
	    sum += n;
	    cout << n << endl;
	}
    }
    cout << sum << endl;

    return EXIT_SUCCESS;
}
