#include<iostream>
#include<queue>
#define N 100001
using namespace std;
int n,m,head[N],side[N],cnt,x,y,i,j,f[N],vis[N],sum;
queue<int>que;
struct node {int pre; int next;}Edge[N];
void add_edge(int x,int y) {
cnt++;
Edge[cnt].pre=y;
Edge[cnt].next=head[x];
head[x]=cnt; side[y]++; }
void topsort(int x) {
vis[x]=1; que.push(x);
while(!que.empty()) {
int u=que.front();
que.pop();
for(int b=head[u]; b; b=Edge[b].next) { int v=Edge[b].pre;
side[v]--;
f[v]=max(f[v],f[u]+1); if(side[v]==0) {
vis[v]=1; que.push(v);
}
}
}
}
int main() {
cin>>n>>m;
for(int i=1;i<=n;i++)f[i]=100;
for(int i=1;i<=m;i++) {
cin>>y>>x; add_edge(x,y);
}
for(int i=1;i<=n;i++)if(!vis[i]&&!side[i])topsort(i);
for(int i=1;i<=n;i++)if(!vis[i]) {
cout<<"Poor Xed"<<endl;
return 0;
}
for(int i=1;i<=n;i++)sum+=f[i];
cout<<sum<<endl;
return 0;
}