#include constexpr int mod = 1000000007; int main() { int n; scanf("%d", &n); long long int dyn[2][3]; dyn[1][0] = 1; dyn[1][1] = 1; dyn[1][2] = 1; long long int i, j, i2, i3; for (i = 2; i <= n; ++i) { j = (i + 1) & 1; i2 = (i * i) % mod; i3 = (i2 * i) % mod; dyn[i & 1][0] = (dyn[j][0] + i) % mod; dyn[i & 1][1] = (dyn[j][1] + (dyn[j][0] * i) % mod + i2) % mod; dyn[i & 1][2] = (dyn[j][2] + (dyn[j][1] * i) % mod + (dyn[j][0] * i2) % mod + i3) % mod; } printf("%lld\n", dyn[n & 1][2]); }