#include <iostream>
#include <vector>
using namespace std;
vector<int> in[1200];
int color[1200];
bool flag = false;
int c = 0;
void dfs(int x) {
if (flag)
{
return;
}
color[x] = 0;
for (int i = 0; i < in[x].size(); i++)
{
if (color[in[x][i]]==-1)
{
dfs(in[x][i]);
}
else if (color[in[x][i]]==0)
{
flag = true;
return;
}
}
color[x] = 1;
}
int main() {
memset(color, -1, sizeof(color));
int n, m;
cin >> n >> m;
for (int i = 0; i < m; i++)
{
int u, v;
cin >> u >> v;
in[u].push_back(v);
}
flag = false;
dfs(1);
if (flag)
{
cout << "OK";
}
else
{
cout << "NO";
}
system("pause");
return 0;
}