/*
快速幂,
qmi(int a, int b, int m)
{
int ans = 0;
while (b)
{
if (b & 1) ans = ans * a % m;
a = a * a % m;
b >>= 1;
}
return ans % m;
}
需要注意 m = 1e10, m * m 会爆, 需要使用 __int128_t 类型。它可以加减乘除,不能直接cout
*/
#include<bits/stdc++.h>
using namespace std;
typedef __int128_t LL;
LL qmi(LL a, LL b, LL m)
{
LL ans = 1L;
while (b)
{
if (b & 1) ans = ans * a % m;
a = a * a % m;
b >>= 1;
}
return ans % m;
}
int main(void)
{
LL m = 1e10;
LL ans = 0;
for (int i = 1; i <= 1000; ++ i)
{
// cout << (long long) qmi(i, i, m) << endl;
ans += qmi(i, i, m);
}
cout << (long long ) (ans % m) << endl;
return 0;
}