#include #include using namespace std; const long long MOD = 1000007LL; // f(n,lower) long long maxNumber(long long n, long long lower) { // symmetric polynomial regarding lower/upper long long upper = n - lower; lower %= MOD; upper %= MOD; long long result = (lower + 1) * upper; result %= MOD; result += lower; result %= MOD; return result; } int main() { long long n; cin >> n; // x: df(n,x)/dx=0 long long minArgX = n / 2; // if n % 2 = 1, lower = n / 2 then // upper = n / 2 + 1 // if n % 2 = 1, lower = n / 2 + 1 then // upper = n / 2 cout << maxNumber(n, minArgX) << endl; return 0; }