所有可达路径
import java.util.*;
public class Test {
static List<List<Integer>> res=new ArrayList<>();
static List<Integer> path=new ArrayList<>();
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int[][]graph=new int[n+1][n+1];
for(int i=0;i<m;i++){
int k1=in.nextInt();
int k2=in.nextInt();
graph[k1][k2]=1;
}
path.add(1);
dfs(graph,1,n);
if(res.size()==0)System.out.println(-1);
else{
for(List<Integer> list:res){
for(int i=0;i<list.size()-1;i++){
System.out.print(list.get(i)+" ");
}
System.out.println(list.get(list.size()-1));
}
}
}
public static void dfs(int[][]graph,int index,int n){
if(index==n){
res.add(new ArrayList<>(path));
return;
}
for(int i=1;i<=n;i++){
if(graph[index][i]==1){
path.add(i);
dfs(graph, i, n);
path.removeLast();
}
}
}
}