#include using namespace std; int memo[1000000]; int ipow(int base, int exp) { int result = 1; while (exp) { if (exp & 1) result *= base; exp >>= 1; base *= base; } return result; } string cut(ulong longNumber, ulong *rest, ulong *firstThreeDigits) { ulong a = longNumber / 1000; ulong b = longNumber - a * 1000; *rest = a; *firstThreeDigits = b; string result = to_string(b); while (result.length() < 3) { result = "0" + result; } return result; } string sumOfGroup(int k) { if (k < 1000) { ulong n = ( k * (k + 1) ) / 2; ulong m = n - k; ulong mSquared = m * m; ulong nSquared = n * n; return to_string(nSquared - mSquared); } else if (k < 1000000) { uint a = k / 1000; uint b = k - a * 1000; ulong a3 = a * a * a; ulong a2b = a * a * b; ulong ab2 = a * b * b; ulong b3 = b * b * b; /* cout << "a3 = " << a3 << endl; cout << "a2b = " << a2b << endl; cout << "ab2 = " << ab2 << endl; cout << "b3 = " << b3 << endl; cout << "a3 = " << a3 << endl; */ ulong billions, millions, thousands, ones; string result = cut(b3, &thousands, &ones); thousands += 3 * ab2; result = cut(thousands, &millions, &thousands) + result; millions += 3 * a2b; result = cut(millions, &billions, &millions) + result; billions += a3; result = to_string(billions) + result; return result; } else { return "1000000000000000000"; } } int main() { int k; cin >> k; string answer = sumOfGroup(k); cout << answer << endl; return 0; }