#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, x, p, res = 1, d = 1000000007;
  cin >> n >> x >> p;
  long long s = x - 1, b = n - x, l = 0, r = n, m;
  while (r > l) {
    m = l + (r - l) / 2;
    if (m == p)
      l = m + 1;
    else if (m > p) {
      r = m;
      res *= b--;
      res %= d;
    } else {
      l = m + 1;
      res *= s--;
      res %= d;
    }
  }
  for (long long i = 1; i <= b + s; i++) {
    res *= i;
    res %= d;
  }
  cout << res;
  return 0;
}
