#include <iostream>
using namespace std;
int const Maxn=100;
int f[Maxn][Maxn],n,m;;
int solve()
{
int i,j,k;
for (i=n;i>=1;i--)
for (j=m;j>=1;j--)
if (i+1<=n && f[i+1][j]==1) f[i][j]=0;
else if (j+1<=m && f[i][j+1]==1) f[i][j]=0;
else if (i+1<=n && j+1<=m && f[i+1][j+1]==1) f[i][j]=0;
else f[i][j]=1;
if (f[1][1]==1) printf("What a pity!/n");
else printf("Wonderful!/n");
return 0;
}
int main()
{
int k;
while (scanf("%d%d",&n,&m)!=EOF)
{
if (n==0 && m==0) break;
if (n<100 && m<100 ) solve();
else
{
if (n %2==1 && m%2==1) printf("What a pity!/n");
else printf("Wonderful!/n");
}
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=2147
博弈,我反正不会