#7~#11还有#13为什么是mle?下面是代码,写的有点乱,各位聚聚见谅
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
struct chuanzhi{
int t;
int k;
int guoji[100005];
};
int sygj[100005];//剩下乘客国籍
int cnt;
chuanzhi jin;
queue <chuanzhi> g;
int n;
int main(){
memset(sygj,0,sizeof(sygj));
scanf("%d",&n);
scanf("%d%d",&jin.t,&jin.k);//录入第一艘信息
for(int i=0;i<jin.k;i++){
int w;
scanf("%d",&w);
jin.guoji[i]=w;
}
g.push(jin);//进港
for(int i=0;i<jin.k;i++){//记录进来的国籍
sygj[jin.guoji[i]]++;
}
cnt=0;
for(int i=0;i<=100000;i++){//记录进来的国籍数量
if(sygj[i]!=0){
cnt++;
}
}
printf("%d\n",cnt);
n--;
while(n--){
scanf("%d%d",&jin.t,&jin.k);//录入第二艘信息
for(int i=0;i<jin.k;i++){
scanf("%d",&jin.guoji[i]);
}
while(!g.empty()&&g.front().t+86400<=jin.t){//队列非空并且超时
for(int i=0;i<g.front().k;i++){
int e=g.front().guoji[i];
sygj[e]--;//国籍离开
if(sygj[e]==0){//如果离开后没人了
cnt--;//总国籍-1;
}
}
g.pop();
}
g.push(jin);
for(int i=0;i<jin.k;i++){//记录进来的国籍
if(sygj[jin.guoji[i]]==0){
cnt++;
}
sygj[jin.guoji[i]]++;
}
printf("%d\n",cnt);
}
}