#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long int ll const MOD = 1000000007; ll const INF = (long long int)1 << 61; int main(){ cin.tie(0); ios::sync_with_stdio(false); ll n,k; cin >> n >> k; vector a(n); for(int i = 0; i < n; i++){ cin >> a[i]; } sort(a.begin(),a.end()); ll ans = 1; ll usenum = 0; for(int i = n-1; i >= n/2; i--){ auto itr = upper_bound(a.begin(),a.end(),k - a[i]); ll oknum = itr - a.begin(); if(oknum > i){ oknum = i; } ans = (ans * (oknum-usenum++))%MOD; } cout << ans << endl; return 0; }