#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
short qipan[31][31];
int szyl,sta;//szyl存zyl出棋数,sta存【她】出棋数
int main()
{
int n,m;cin>>n>>m;
char temp;
for(int hang=1;hang<=n;hang++)
{
for(int lie=1;lie<=m;lie++)
{
cin>>temp;
if(temp=='*'){
qipan[hang][lie]=1;//1为【她】
sta++;
}
else if(temp=='$'){
qipan[hang][lie]=2;//2为zyl
szyl++;
}
}
}//读取
int flag=0;//记录胜者
for(int hang=1;hang<=n;hang++)
{
if(flag!=0) break;
for(int lie=1;lie<=m;lie++)
{
if(flag!=0) break;
if(lie+4<=m){//包括该点可以往右数5个
int i=0;//用于判断是否有胜者
for(;i<5;i++)
if(qipan[hang][lie]!=qipan[hang][lie+i]) break;
if(i==5){//有胜者
flag=qipan[hang][lie];//记录胜者
break;
}//横着
if(hang+4<=n){//包括该点可以往下数5个
for(;i<5;i++)
if(qipan[hang][lie]!=qipan[hang+i][lie+i]) break;
if(i==5){
flag=qipan[hang][lie];
break;
}
}//右下
}
if(hang+4<=n){
int i=0;
for(;i<5;i++)
if(qipan[hang][lie]!=qipan[hang+i][lie]) break;
if(i==5){
flag=qipan[hang][lie];
break;
}//竖着
if(lie-4>=1){
for(;i<5;i++)
if(qipan[hang][lie]!=qipan[hang+i][lie-i]) break;
if(i==5){
flag=qipan[hang][lie];
break;
}
}//左下
}
}
}
if(flag!=0){//有胜者
if(flag==1) cout<<"Pleasing!";
else cout<<"zylwins!";
}
else{
if(szyl==sta) cout<<"W";
else cout<<"Z";
}
return 0;
}