时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

我收到了 n 件礼物,其中每个礼物有 m 个颜色。 

接下来会输入一个序列 b,表示已知 Boss 送我的那一件礼物会有颜色 b_i

请输出每次得到信息之后,n 件礼物中可能是 Boss 送我的礼物个数。

注意:询问之间不独立,例如得到第三条信息时,你需要综合前三条(第一、二、三条)信息综合判断礼物是否符合要求。

输入描述:

全文第一行输入一个正整数 ,表示数据组数。

对每组数据,第一行输入两个正整数

接下来输入一个 的矩阵,第 i 行第 j 列表示第 i 个礼物的第 j 种颜色

接下来输入一个长度为 m 的序列,表示序列

数据保证同一行之内 col 互不相同(即一个礼物上不会有两种相同的颜色),且信息 b_i 互不相同。

输出描述:

对每组数据输出一行 m 个数,表示每次得到信息之后的结果。
示例1

输入

复制
2
3 3
1 2 3
2 3 4
3 4 5
3 2 1
3 2
1 2
2 3
1 3
1 2

输出

复制
3 2 1
2 1

说明

第一组数据,三件礼物的颜色分别是 \{1,\color{blue}2\color{black},\color{red}3\color{black}\},\{\color{blue}2\color{black},\color{red}3\color{black},4\},\{\color{red}3\color{black},4,5\},一开始信息是 \color{red}3,三件礼物都符合;第二次信息是 \color{blue}2,只有前两件符合;最后一次信息是 1,只有第一件符合,因此依次输出符合要求的礼物个数 3,2,1

第二组数据,三件礼物颜色分别是 \{\color{red}{1},\color{blue}{2}\},\{\color{blue}{2},3\},\{\color{red}{1},3\},第一条信息给出之后,\{\color{red}{1},\color{blue}{2}\}\{\color{red}{1},3\} 都包含颜色 \color{red} 1,因此符合要求的有 2 个;第二条信息给出之后,同时具有颜色 \color{red}{1},\color{blue}{2} 的只有物品 1 了。