#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
struct node{
int x,t; //x国籍,t到港时间
};
queue<node> q; //结构体队列
int vis[N]; //vis[i]:标记国籍i在港的数量
int n,ans; //ans在港的不同国籍数量
int main()
{
cin >> n;
for(int i = 1; i <= n; i++)
{
int t,m,x;
cin >> t >> m; //先输入船只到港时间t,船上人数m
for(int j = 1; j <= m; j++) //接下来是m个人的国籍输入
{
cin >> x;
q.push({x,t}); //将每个人加入海港队列
vis[x]++;
if(vis[x] == 1) ans++; //该国籍首次出现,则国籍种类数ans+1
}
//接下来处理海港队列中,因超时要离港的人 当前时间t - 队首到港时间q.front().t >= 86400,那么队首离港
while(t - q.front().t >= 86400)
{
int x = q.front().x; q.pop(); //取出队首并出队
vis[x]--;
if(vis[x] == 0) ans--; //离港的人国籍数量-1,如果国际数量=0,则种类数ans-1
}
cout << ans << endl; //处理完入港、离港后,输出当前港上国籍人数
}
return 0;
}