很水的题目
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int mx[5]={0,1,-1,0,0};
int my[5]={0,0,0,-1,1};
int n,m;
char ma[101][101];
char im;
int Aimee;
struct wa{
int l;int r;
}jdn[1001];
int p;
void dfs(int x,int y){
if(ma[x][y]=='x'){
cout<<"GG";
exit(0);
}
if(ma[x][y]!='.'&&ma[x][y]!='o'){
return ;
}
dfs(x+mx[Aimee],y+my[Aimee]);
return ;
}
int main(){
scanf("%d%d",&n,&m);
cin>>im;
if(im=='^'){
Aimee=2;
}
if(im=='v'){
Aimee=1;
}
if(im=='<'){
Aimee=3;
}
if(im=='>'){
Aimee=4;
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cin>>ma[i][j];
if(ma[i][j]=='o'){
p++;
jdn[p].l=i;
jdn[p].r=j;
}
}
}
for(int i=1;i<=p;++i){
dfs(jdn[i].l,jdn[i].r);
}
cout<<"OK";
return 0;
}