#include<iostream>
#include<vector>
using namespace std;
void dfs(vector<vector<int>>&graph,vector<int>&visited,int node){
visited[node]=1;
for(int i = 0;i<visited.size();i++){
if(visited[i]==0&&graph[node][i]==1){
dfs(graph,visited,i);
}
}
}
int main(){
int n,k,a,b;
cin>>n>>k;
vector<vector<int>> graph(n+1,vector<int>(n+1,0));
vector<int> visited(n+1,0);
while(k--){
cin>>a>>b;
graph[a][b]=1;
}
dfs(graph,visited,1);
int res = 1;
for(int i = 1;i<visited.size();i++){
if(visited[i]==0){
res=-1;
break;
}
}
cout<<res;
}