import java.util.Scanner;publicclassMain{static int[][]H;//竖static int[][]V;//横publicstaticvoidmain(String[] args){
Scanner sc =newScanner(System.in);
int t=0;//游戏次数while(sc.hasNext()){
int n=sc.nextInt();//正方形大小
int m=sc.nextInt();//边的数量H=newint[10][10];V=newint[10][10];while(m-->0){
char ch=sc.next().toCharArray()[0];//字符
int p=sc.nextInt();
int q=sc.nextInt();if(ch=='H')H[p][q]=1;//坑呀:H为行,列elseif(ch=='V')V[q][p]=1;//V为列,行}if(t!=0){
System.out.println();
System.out.println("**********************************");
System.out.println();}
System.out.println("Problem #"+(++t));
System.out.println();
int sum=0,num=0;for(int i =1; i <= n-1; i++){//边长
num=count(i,n);//计算长度为i的正方形的个数if(num!=0){
sum+=num;
System.out.println(num+" square (s) of size "+i);}}if(sum==0){
System.out.println("No completed squares can be found.");}}}privatestatic int count(int k,int n){
int number=0;
int flag=1;//flag=0不是正方形for(int i =1; i+k <= n; i++){//i:1~n-kfor(int j =1; j+k <= n; j++){//j:1~n-k
flag=1;for(int p =0; p < k && flag==1; p++){//上面那条边if(H[i][j+p]==0){
flag=0;break;}}for(int p =0; p < k && flag==1; p++){//左面那条边if(V[i+p][j]==0){
flag=0;break;}}for(int p =0; p < k && flag==1; p++){//右面那条边if(V[i+p][j+k]==0){
flag=0;break;}}for(int p =0; p < k && flag==1; p++){//下面那条边if(H[i+k][j+p]==0){
flag=0;break;}}if(flag==1) number++;}}return number;}}