#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7, N = 4e3 + 5;
int n, dp[N][N], ans, c[N][N], sum[N];
void add(int &x, int y) { x = (x + y) % mod; }
int main() {
  cin >> n;
  c[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++)
      c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;
  }
  dp[0][0] = sum[0] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= i; j++) {
      if (j) add(dp[i][j], dp[i - 1][j - 1]);
      add(dp[i][j], 1ll * dp[i - 1][j] * j % mod);
      add(sum[i], dp[i][j]);
    }
  }
  for (int i = 0; i <= n - 1; i++) {
    add(ans, 1ll * c[n][i] * sum[i] % mod);
  }
  printf("%d\n", ans);
  return 0;
}
