#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <stdio.h>
using namespace std;
#define int long long
int MOD = 1000000007;
signed main() {
	cin.tie(0);
	ios::sync_with_stdio(false);
	int N;
	cin >> N;

	int n = (N - 1) % MOD;
	int inv6 = (MOD + 1) / 6;
	int inv2 = (MOD + 1) / 2;
	int a = (n - 2) * (n - 1) % MOD;
	a = (a * inv2) % MOD;

	int b = ((N - 2) / 2) % MOD;
	int c = 0;
	if ((N - 1) % 3 == 0) {
		c = 1;
	}
	//cerr << a << " " << b << endl;
	int res = (a + 3 * b + 2 * c) % MOD;
	res = (100 * MOD + res) % MOD;
	res = (res * inv6) % MOD;
	cout << res << endl;
}