import bisect n,k = map(int,input().split()) a = [int(i) for i in input().split()] a.sort() ans = 1 mod = 10**9+7 cnt = 0 for i in range(n-1,0,-1): if i == n//2-1: break #print(i) val = k-a[i] idx = bisect.bisect_right(a,val) ans *= min(i,idx)-cnt ans %= mod #print(ans,i,idx-cnt) cnt += 1 print(ans)