#include <bits/stdc++.h>
using namespace std;
const int N = 4005;
const long long mod = 1e9 + 7;
long long c[N][N], a[N], d[N][N];
int n;
inline long long add(long long x, long long y) {
  long long ans = x + y;
  if (ans >= mod) ans -= mod;
  return ans;
}
void init() {
  c[0][0] = 1;
  d[0][0] = 1;
  for (int i = 1; i <= 4000; i++) {
    for (int j = 0; j <= i; j++) {
      if (j == 0)
        c[i][j] = c[i - 1][i - 1];
      else
        c[i][j] = add(c[i - 1][j - 1], c[i][j - 1]);
      if (j == 0 || j == i)
        d[i][j] = 1;
      else
        d[i][j] = add(d[i - 1][j], d[i - 1][j - 1]);
    }
  }
}
int main() {
  init();
  scanf("%d", &n);
  long long ans = 0;
  for (int i = 1; i < n; i++) {
    ans += (d[n][i] * c[i][0]) % mod;
    ans %= mod;
  }
  printf("%lld\n", (ans + 1) % mod);
  return 0;
}
