在他最喜欢的咖啡馆里,Kmes再次想尝尝皮草大衣下的鲱鱼。以前,这对他来说并不难,但咖啡馆最近推出了一项新的购买政策。
现在,为了进行购买,Kmes需要解决以下问题:在他面前摆放着 n 张不同价格的卡,第 i 张卡的价格为 ai,在这些价格中没有整数 x 。
Kmes被要求将这些卡划分为最少数量的坏段(这样每张卡只属于一个段)。如果无法选择乘积等于 x 的卡子集,则认为该段是坏的。Kmes 划分卡片的所有段都必须是坏的。
从形式上讲,如果没有下标 i1<i2<…<ik,使得 l≤i1,ik≤r 且 ∏j=1kaij=x,则段 (l,r) 是坏的。
帮助Kmes确定坏段的最小数量,以便享受他最喜欢的菜肴。
第一行包含一个整数 t(1≤t≤103)——测试用例的数量。
每组输入数据的第一行分别给出整数 n 和 x(1≤n≤105,2≤x≤105)——卡片数量和整数。
每组输入数据的第二行包含 n 个整数ai(1≤ai≤2⋅105,ai=x)——卡片上的价格。
保证所有测试数据集的 n 总和不超过105。
对于每组输入数据,输出坏段的最小数量。
### 题目翻译
在他最喜欢的咖啡馆里,Kmes再次想尝尝皮草大衣下的鲱鱼。以前,这对他来说并不难,但咖啡馆最近推出了一项新的购买政策。
现在,为了进行购买,Kmes需要解决以下问题:在他面前摆放着 $n$ 张不同价格的卡,第 $i$ 张卡的价格为 $a_i$,在这些价格中没有整数 $x$
。
Kmes被要求将这些卡划分为最少数量的坏段(这样每张卡只属于一个段)。如果无法选择乘积等于 $x$ 的卡子集,则认为该段是坏的。Kmes 划分卡片的所有段都必须是坏的。
从形式上讲,如果没有下标 $i_1<i_2<\ldots<i_k$,使得 $l\le i_1,i_k\le r$ 且 $\prod _ {j=1} ^ {k} a_{i_j} = x$,则段 $(l,r)$ 是坏的。
帮助Kmes确定坏段的最小数量,以便享受他最喜欢的菜肴。
### 输入格式
第一行包含一个整数 $t(1\le t\le 10^3)$——测试用例的数量。
每组输入数据的第一行分别给出整数 $n$ 和 $x(1\le n\le 10^5,2\le x\le 10^ 5)$——卡片数量和整数。
每组输入数据的第二行包含 $n$ 个整数$a_i(1\le a_i\le 2\cdot 10^5,a_i\neq x)$——卡片上的价格。
保证所有测试数据集的 $n$ 总和不超过$10^5$。
### 输出格式
对于每组输入数据,输出坏段的最小数量。