#include <bits/stdc++.h>
using namespace std;
int main() {
  int tab[] = {1, 2, 9, 64, 625, 7776, 117649, 2097152};
  int n, k;
  scanf("%d %d", &n, &k);
  const long long MOD = 1000000007;
  long long res = 1;
  for (int i = 0; i < n - k; i++) {
    res *= (n - k);
    res %= MOD;
  }
  res *= tab[k - 1];
  res %= MOD;
  printf("%I64d\n", res);
  return 0;
}
