def binarysrch(lst, lft, rgt, trg): if lft == rgt: if lst[lft] == trg: return lft return -1 m = (lft+rgt)/2 if trg <= lst[m]: return binarysrch(lst, lft, m, trg) return binarysrch(lst, m+1, rgt, trg) N, X = map(int, raw_input().split()) a = map(int, raw_input().split()) a.sort() number = [] count = [] tmp = -1 for i in range(0, N): if a[i] != tmp: number.append(a[i]) count.append(1) tmp = a[i] else: count[-1] += 1 ans = 0 for i in range(0, len(number)): target = X - a[i] judge = binarysrch(number, 0, len(number)-1, target) if judge != -1: ans += count[i]*count[judge] print ans