#668. 森林信号归档(forest)

森林信号归档(forest)

读写要求

本题采用文件读写,请在提交代码时使用正确的文件读写方式,否则会导致 RE

输入:forest.in

输出:forest.out

题目背景

在那片古老而深邃的迷雾森林中,护林员小林正在收集失散的信号发射器传回的编码数据。由于森林干扰,许多发射器的信号特征发生了重叠。

题目描述

小林一共收集到了 nn 条信号编码,第 ii 条编码为一个正整数 aia_i

根据森林通信协议,判断两个编码是否来自“同一种设备”的标准是:观察它们的末尾 kk 位编码。 具体定义为:如果正整数 xxyy 满足 x(mod10k)=y(mod10k)x \pmod{10^k} = y \pmod{10^k},则认为这两条编码属于同一种设备。

现在,小林想知道,他收集到的这 nn 条编码一共涵盖了多少种不同的设备?

输入格式

第一行包含两个正整数 nnkk,分别表示收集到的编码总数以及需要比对的末尾位数。
第二行包含 nn 个正整数 aia_i,表示每条信号的具体编码值。

输出格式

输出一行一个整数,表示不同设备的种类数。

样例输入输出

4 2
1345 245 105 1
3
5 1
10 20 30 40 50
1
3 3
1000 2000 3000
1

样例说明

  • 在样例 1 中,k=2k=2。各编码后 2 位分别为:45, 45, 05, 01。去重后共有 45, 05, 01 三种情况,故输出 3。
  • 在样例 2 中,k=1k=1。各编码后 1 位全为 0。属于同一种设备,故输出 1。
  • 在样例 3 中,k=3k=3。各编码后 3 位全为 000。属于同一种设备,故输出 1。

数据规模与约定

  • 对于 100%100\% 的数据,保证 1n1051 \le n \le 10^51ai1091 \le a_i \le 10^91k41 \le k \le 4