//只需求出两个节点到达公共祖先节点所走的次数,只要求出节点到最原始祖先节点的次数
//并差集
#include<stdio.h> int f[100002]; int find(int a) { int cont=0; while(f[a]!=a) { cont++; a=f[a]; } return cont; } int main() { int i,a,b,n,m; while(scanf("%d%d",&n,&m),n||m) { for(i=1;i<=n;i++) f[i]=i; for(i=1;i<n;i++) { scanf("%d%d",&a,&b); f[b]=a; } for(i=0;i<m;i++) { scanf("%d%d",&a,&b); a=find(a); b=find(b); if(b<a)printf("pfz\n"); else printf("lxh\n"); } } return 0; }