第二个样例RE找不到哪里错了
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,m;
int st[N],de[N];
bool is[N],ts[N][N];
int main(){
cin>>n>>m;
int s;
while(m--){//建图
memset(is,0,sizeof(is));
scanf("%d",&s);//cin>>s;
for(int j=1;j<=s;j++){
scanf("%d",&st[j]);//cin>>st[j];
is[st[j]]=1;
}
for(int i=st[1];i<=st[s];i++){
if(!is[i]){
for(int j=1;j<=s;j++){
int ou=st[j];
if(ts[i][ou]==0){
ts[i][ou]=1;
de[ou]++;
}
}
}
}
}
int top;
bool vis[N];
memset(vis,0,sizeof(vis));
int tt[N],ans=0;
memset(tt,0,sizeof(tt));
do{
top=0;
for(int i=1;i<=n;i++){
if(!vis[i]&&de[i]==0){
top++;
vis[i]=1;
tt[++top]=i;
}
}
for(int i=1;i<=top;i++){
for(int j=1;j<=n;j++){
if(ts[tt[i]][j]){
ts[tt[i]][j]=0;
de[j]--;
}
}
}
ans++;
} while(top);
cout<<ans-1;
return 0;
}
/*
9 2
4 1 3 5 6
3 3 5 6
*/