#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 105;
char a[N][N];
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n , m;
char fang;
cin >> n >> m >> fang;
bool flag1 = 0 , flag2 = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> a[i][j];
if (a[i][j] == 'o')
{
flag1 = 1;
}
if (a[i][j] == 'x')
{
flag2 = 1;
}
}
}
if (flag1 == 0 || flag2 == 0)
{
cout << "OK";
return 0;
}
if (fang == '^')
{
bool flag = 0;
for (int i = 1; i <= n; i++)
{
int shuix = 0 , shuiy = 0;
for (int j = 1; j <= m; j++)
{
if (a[i][j] == 'o')
{
shuix = i;
shuiy = j;
while (shuix - 1 != 0 && a[shuix][shuiy] != 'x')
{
shuix--;
}
if (a[shuix][shuiy] == 'x')
{
cout << "GG";
flag = 1;
break;
}
}
}
if (flag == 1)
{
break;
}
}
if (flag == 0)
{
cout << "OK";
}
}
else if (fang == 'v')
{
bool flag = 0;
for (int i = 1; i <= n; i++)
{
int shuix = 0 , shuiy = 0;
for (int j = 1; j <= m; j++)
{
if (a[i][j] == 'o')
{
shuix = i;
shuiy = j;
while (shuix + 1 != n + 1 && a[shuix][shuiy] != 'x')
{
shuix++;
}
if (a[shuix][shuiy] == 'x')
{
cout << "GG";
flag = 1;
break;
}
}
}
if (flag == 1)
{
break;
}
}
if (flag == 0)
{
cout << "OK";
}
}
else if (fang == '<')
{
bool flag = 0;
for (int i = 1; i <= n; i++)
{
int shuix = 0 , shuiy = 0;
for (int j = 1; j <= m; j++)
{
if (a[i][j] == 'o')
{
shuix = i;
shuiy = j;
while (shuiy - 1 != 0 && a[shuix][shuiy] != 'x')
{
shuiy--;
}
if (a[shuix][shuiy] == 'x')
{
cout << "GG";
flag = 1;
break;
}
}
}
if (flag == 1)
{
break;
}
}
if (flag == 0)
{
cout << "OK";
}
}
else
{
bool flag = 0;
for (int i = 1; i <= n; i++)
{
int shuix = 0 , shuiy = 0;
for (int j = 1; j <= m; j++)
{
if (a[i][j] == 'o')
{
shuix = i;
shuiy = j;
while (shuiy + 1 != m && a[shuix][shuiy] != 'x')
{
shuiy++;
}
if (a[shuix][shuiy] == 'x')
{
cout << "GG";
flag = 1;
break;
}
}
}
if (flag == 1)
{
break;
}
}
if (flag == 0)
{
cout << "OK";
}
}
return 0;
}
50分,Subtask 4有错误