from bisect import * N, K = map(int, input().split()) A = list(map(int, input().split())) A.sort() mod = 10**9 + 7 ans = 1 for i in range(N//2): ind = bisect_right(A, K - A[-1-i]) ans *= min(N - 1 - i, ind) - i ans %= mod print(ans)