#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(c) c.begin(), c.end() #define rall(c) c.rbegin(), c.rend() #define debug(x) cerr << #x << ": " << x << endl using namespace std; typedef long long ll; typedef pair Pll; typedef pair Pii; const ll MOD = 1000000007; const long double EPS = 1e-10; const int dyx[4][2] = { { 0, 1}, {-1, 0}, {0,-1}, {1, 0} }; int main() { int n; ll k; cin >> n >> k; vector a(n); for(int i=0;i> a[i]; } sort(all(a)); vector b(n); for(int i=0;in-1-n/2;--i) { ans *= b[i] - (n-1-i); ans %= MOD; } cout << ans << endl; }