#include #include #define llint long long #define mod 1000000007 using namespace std; llint n, k; llint a[200005]; int main(void) { cin >> n >> k; for(int i = 1; i <= n; i++) cin >> a[i]; sort(a+1, a+n+1); llint ans = 1, rem; for(int i = n; i >= 1; i--){ if(a[i] <= k/2){ rem = n - 2*(n-i); break; } int cnt = upper_bound(a+1, a+n+1, k-a[i]) - (a+1); cnt -= (n-i); if(cnt <= 0){ cout << 0 << endl; return 0; } ans *= cnt, ans %= mod; } for(int i = rem-1; i > 0; i-=2) ans *= i, ans %= mod; cout << ans << endl; return 0; }