#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <cmath>
#include <bitset>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <complex>
#include <unordered_map>
#include <unordered_set>
#include <random>
#include <cassert>
#include <fstream>
#include <utility>
#include <functional>
#include <time.h>
#include <stack>
#include <array>
#define popcount __builtin_popcount
using namespace std;
typedef long long int ll;
typedef pair<int, int> P;
vector<int> g[110];
bool used[110];
bool finish[110];
bool ok;
void dfs(int x){
	used[x]=1;
	for(auto y:g[x]){
		if(used[y] && !finish[y]) ok=1;
		if(!used[y]) dfs(y);
	}
	finish[x]=1;
}
int main()
{
    int n, m;
    cin>>n>>m;
    for(int i=0; i<m; i++){
        int s, t;
        cin>>s>>t;
        g[s].push_back(t);
    }
    for(int i=0; i<n; i++){
        if(used[i]) continue;
        dfs(i);
        if(ok){
            cout<<1<<endl;
            return 0;
        }
    }
    cout<<0<<endl;
	return 0;
}

