#include<bits/stdc++.h>
using namespace std;
typedef struct{
char *base;
char* top;//zhanding
int stacksize;
}mstack;
int init(mstack &s,int a)
{
s.base=new char[a];//cunyi
if(!s.base) exit(OVERFLOW);
s.top=s.base;
s.stacksize=a;
return 1;
}
int push(mstack &s,char a)
{
if(s.top-s.base==s.stacksize)return 0;
*s.top=a;
s.top++;
return 1;
}
int pop(mstack &s)
{
if(s.top==s.base)return 0;
s.top--;
return 1;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
mstack s;
int i;
for(i=1;i<=n;i++)
{
char c[101];
init(s,m);
getchar();
cin>>c;
int j=0,q,w,flag=0;
for(j=0;c[j]!=0;j++)
{
if(c[j]=='S')
{
if(s.top-s.base==s.stacksize)
flag=1;
else
q=push(s,'s');
}
if(c[j]=='X')
{
if(s.top==s.base)
flag=1;
else
w=pop(s);
}
}
if(flag==0&&(s.top==s.base))
printf("YES\n");
else
printf("NO\n");
}
}
09-26
09-26
09-26