#ZF1178. RYC碎片2

RYC碎片2

Description

注:版本 11 和版本 22,输入格式一致,但本质是不同的问题,两个问题的区别在于加粗的部分。

小任很喜欢约数,事实上他很有可能成为这方面的专家。但开拓荒野往往是困难的,以下是他遇到的第二个麻烦:

nn 个不同正整数组成的数组 aa 和一个正整数 cc,问存在有多少种数字对 ij (1i<jn, ij)i,j\ (1\leq i<j\leq n ,\ i \neq j),使得至少有两个整数 xyx,y 满足 x×ai+y×aj=cx\times a_i+y\times a_j=cxxyy 为任意整数\textbf{整数}

Format

Input

第一行包含两个整数 n,cn,c,其中 1n,c2×1051 \leq n,c \leq 2\times 10^5,分别表示数组 aa 的大小和判断是否能被组成的数字。

第二行包含 nn 个不同的正整数,对于 1in1\leq i \leq naia_i 表示数组中第 ii 个数字,其中 1ai2×1051\leq a_i \leq 2 \times 10^5

Output

输出一个整数,表示数组中满足条件的数字对数。

Samples

4 11
1 2 3 4
5

Limitation

1s, 1024KiB for each test case.