n,K=map(int,input().split()) a=list(map(int,input().split())) g=0 def solve(l,r): global g if l==r: v=a[l] if v+v==K: g+=1 return [(v,v)],[(v,v)] w=(r-l+1)//2 ql,_=solve(l,l+w-1) _,qr=solve(l+w,r) qrs={} qrc={} qrsx={} qrcx={} for i in range(len(qr)): rv,mv=qr[i] if rv==-1: continue if rv not in qrs: qrs[rv]=0 qrc[rv]=0 qrsx[rv]={} qrcx[rv]={} qrs[rv]+=i+1 qrc[rv]+=1 if mv not in qrsx[rv]: qrsx[rv][mv]=0 qrcx[rv][mv]=0 qrsx[rv][mv]+=i+1 qrcx[rv][mv]+=1 for i in range(len(ql)): lv,mv=ql[i] if lv==-1: continue if K-lv in qrs: g+=(i+1)*qrc[K-lv]+qrs[K-lv] if mv in qrsx[K-lv]: g-=(i+1)*qrcx[K-lv][mv]+qrsx[K-lv][mv] ql=[] mv=10**10 c=1 for i in reversed(range(l,r+1)): v=a[i] if v