Ac now :(
[cpp]
void search(int m,int n,int i,int j)
{
char c1,c2;
int len,k;
c1=find(n,i,j);
board [j]=c1;
len=0;
while(++len){
if(j+len>=n || board [j+len]!='?') break;
c2=find(n,i,j+len);
if(c2<c1) break;
if(isok(m,n,i,j,len) && (j+len+1>=n || board [j+len+1]!=c1)
&& (!i ...