#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int n, k, m, MSK, res, f[14][100005][20];
int add(int a, int b) {
  int s = a + b;
  return (s < mod ? s : s - mod);
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k >> m;
  MSK = 1 << m;
  f[0][0][0] = 1;
  for (int len = 1; len <= k + 1; len++)
    for (int i = 1; i <= n; i++)
      for (int msk = 0; msk < MSK; msk++) {
        int curMsk = (msk << 1) % MSK;
        f[len - 1][i][curMsk] =
            add(f[len - 1][i][curMsk], f[len - 1][i - 1][msk]);
        if (len <= k) {
          curMsk |= 1;
          long long ways = __builtin_popcount(msk) + 1;
          f[len][i][curMsk] =
              add(f[len][i][curMsk], f[len - 1][i - 1][msk] * ways % mod);
        }
      }
  for (int msk = 0; msk < MSK; msk++) res = add(res, f[k][n][msk]);
  cout << res;
}
