#include <bits/stdc++.h>
using namespace std;
const int N = 4005;
const int mod = 1e9 + 7;
long long dp[N];
long long st[N][N];
long long stirling2(int a, int b) {
  if (a == b) return 1;
  if (b == 1) return 1;
  if (st[a][b] != -1)
    return st[a][b];
  else {
    st[a][b] = (b * stirling2(a - 1, b) + stirling2(a - 1, b - 1)) % mod;
    return st[a][b];
  }
}
void pre() {
  memset(st, -1, sizeof st);
  for (int i = 1; i <= 4000; i++) {
    for (int j = 1; j <= i; j++) {
      dp[i] = (dp[i] + j * stirling2(i, j)) % mod;
    }
  }
}
int n;
int main() {
  pre();
  while (~scanf("%d", &n)) {
    printf("%d\n", dp[n]);
  }
  return 0;
}
