@[WZRYWZWY](/user/704668)
Because I don't know
因为我也RE
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct node{
int to;
int last;
}edge[1001000];
int head[1100]={0},in[1100]={0},k=0;;
void add(int x,int y){
k++;
edge[k].to=y;
edge[k].last=head[x];
head[x]=k;
}
int aa[1100]={0};
int main(){
int x;
int sum=0,ans=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d",&x);
for(int j=1;j<=x;j++){
scanf("%d",&aa[j]);
}
int ki=2;
for(int j=aa[1]+1;j<aa[x];j++){
if(j==aa[ki]){
ki++;
continue;
}
for(int o=1;o<=x;o++){
add(j,aa[o]);
in[aa[o]]++;
sum++;
}
}
}
/*
for(int i=1;i<=n;i++){
for(int j=head[i];j!=0;j=edge[j].last){
printf("%d to %d\n",i,edge[j].to);
}
//printf("i=%d %d\n",i,in[i]);
}
*/
while(sum){
//printf("sum=%d ans=%d\n",sum,ans);
for(int i=1;i<=n;i++){
//printf("in[%d]=%d\n",i,in[i]);
if(in[i]==0){
int op=edge[head[i]].last;
//printf("sum=%d i=%d\n",sum,i);
for(int j=head[i];j!=0;j=op){
//printf("dd%d to %d\n",i,edge[j].to);
in[edge[j].to]--;
sum--;
op=edge[j].last;
edge[j].last=0;
}
head[i]=0;
}
}
ans++;
}
cout<<ans+1;
return 0;
}
```
by Dai_Fu @ 2023-08-13 10:46:38
@[Dai_Fu](/user/704655) ……
by WZRYWZWY @ 2023-08-13 11:09:32
@[WZRYWZWY](/user/704668) 需删除重边。
by Bernie_qwq @ 2023-08-13 14:47:15
@[Bernie_qwq](/user/701460) 嗯
by WZRYWZWY @ 2023-08-13 14:50:40
@[WZRYWZWY](/user/704668) 所以能不能关注@[Bernie_qwq](/user/701460) 谢谢喵!
by Bernie_qwq @ 2023-08-13 14:51:18
@[Bernie_qwq](/user/701460) 为什么会有重边呢QAQ
by WZRYWZWY @ 2023-08-13 14:51:44
@[WZRYWZWY](/user/704668) 数据不保证没有重边吧(?
by Bernie_qwq @ 2023-08-13 14:53:41
@[Bernie_qwq](/user/701460) 我试试
by WZRYWZWY @ 2023-08-13 14:55:57
@[Bernie_qwq](/user/701460) 果然A了,感谢QAQ(话说为什么有重边就会RE啊)
by WZRYWZWY @ 2023-08-13 14:58:22