#include using namespace std; int main(){ constexpr long M = 1000000007; long N, K; cin >> N >> K; vector A(N); for(auto& i : A)cin >> i; sort(A.begin(), A.end()); long ans(1); for(long i = 0; i < N; ++i){ auto k = min(N - i - 1, upper_bound(A.begin(), A.end(), K - A[N - i - 1]) - A.begin()); if(k - i >= 0)ans = ans * (k - i) % M; } cout << ans << endl; return 0; }