#include <bits/stdc++.h>
using namespace std;
int n,m,k;
int du[100005];
int book[100005],instk[100005];
vector <int> e[100005],ans[100005];
stack <int> stk;
int del(int x,int y)
{
for(int i=0;i<e[x].size();i++)
if(e[x][i]==y)
{
e[x].erase(e[x].begin()+i);
break;
}
for(int i=0;i<e[y].size();i++)
if(e[y][i]==x)
{
e[y].erase(e[y].begin()+i);
break;
}
}
void dfs(int x)
{
book[x]=1;
for(int i=0;i<e[x].size();i++)
{
int y=e[x][i];
del(x,y);
dfs(y);
}
if(instk[x]==1)
{
k++;
stk.push(x);
while(!stk.empty())
{
int t=stk.top();
ans[k].push_back(t);
stk.pop();
}
return ;
}
else
{
stk.push(x);
instk[x]=1;
}
return ;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int a,b,s,t;
scanf("%d%d%d%d",&a,&b,&s,&t);
if(s!=t)
{
e[a].push_back(b);
e[b].push_back(a);
du[a]++,du[b]++;
}
}
for(int i=1;i<=n;i++)
if(du[i]%2==1)
{
cout<<"NIE";
return 0;
}
for(int i=1;i<=n;i++)
if(book[i]==0)
{
memset(instk,0,sizeof instk);
dfs(i);
}
cout<<k<<endl;
for(int i=1;i<=k;i++)
{
cout<<ans[i].size()-1<<" ";
for(int j=0;j<ans[i].size();j++)
cout<<ans[i][j]<<" ";
cout<<endl;
}
return 0;
}
这个代码是哪里出错了