#include #include #include #include #include using namespace std; int store[10000][10]; int visited[11]={0}; int parent[11]={-1}; int adj[11][11]; int edvis[11][11]={0}; int incurrentdfs[11]={0}; int t=0; void dfs(int x,int n){ visited[x]=1; incurrentdfs[x]=1; for(int j=1;j<=n;j++){ if(adj[x][j] && !visited[j]){ edvis[x][j]=1; parent[j]=x; dfs(j,n); } else if(adj[x][j] && visited[j] && incurrentdfs[j]){ edvis[x][j]=1; int c=x; while(c!=j){ store[t][c]=1; c=parent[c]; } store[t][j]=1; t++; } else if(visited[j] && adj[x][j] && !incurrentdfs[j] && !edvis[x][j]){ edvis[x][j]=1; parent[j]=x; dfs(j,n); } } incurrentdfs[x]=0; } int main() { int n,m; cin>>n>>m; for(int j=0;j>a>>b; adj[a][b]=1; } for(int i=1;i<=n;i++){ if(!visited[i]){ dfs(i,n); } } int sum=100000; int index=-1; for(int i=0;i