#include<bits/stdc++.h>
using namespace std;
int main () {
  int N;
  cin >> N;
  vector<int>so;
  vector<bool>un(N + 1, true);
  const long long mo = 1e9 + 7;
  for (int i = 2; i <= N; i ++) {
    if (un[i]) {
      so.push_back(i);
      for (int j = 0; j <= N / i; j ++) {
        un[i * j] = false;
      }
    }
  }
  long long ans = 1;
  int si = (int)so.size();
  for (int i = 0; i < si; i ++) {
    int n = N;
    long long kj = 0;
    while (n) {
      kj += (long long) n / so[i];
      n /= so[i];
      kj %= mo;
    }
    ans *= kj + 1;
    ans %= mo;
  }
  cout << ans << endl;
}


#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define ll long long
#define MOD 1000000007
#define all(c) c.begin(), c.end()
#define peek(v)      \
	for (auto i : v) \
		cout << i << ' ';

void solve()
{
	vector<ll> v(1001, 0);
	ll n, k;
	cin >> n;
	for (ll i = 2; i <= n; i++)
	{
		k = i;
		for (ll j = 2; k > 1;)
		{
			if (k % j == 0)
				k /= j, v[j]++;
			else
				j++;
		}
	}
	ll res = 1;
	for (ll i : v)
		res = res * (i + 1) % MOD;
	cout << res;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	solve();
	cerr << "\n\n~" << 500 * clock() / CLOCKS_PER_SEC << "ms\n";
	return 0;
}