#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int H[10][10];
int V[10][10];
int ans=0;
bool check(int x,int y,int size) // 判断能否形成正方形
{
for(int i=x;i<x+size;i++){
if(V[i][y]==0)
return false;
}
for(int i=x;i<x+size;i++){
if(V[i][y+size]==0)
return false;
}
for(int j=y;j<y+size;j++){
if(H[x][j]==0)
return false;
}
for(int j=y;j<y+size;j++){
if(H[x+size][j]==0)
return false;
}
return true;
}
int count(int size,int m) // 计算某尺寸正方形数量
{
int nn=0;
for(int i=1;i<=m-size;i++){ // 正方形左上角点 的范围
for(int j=1;j<=m-size;j++){
if(check(i,j,size)){
++nn;
}
}
}
return nn;
}
int main()
{
int m,n;
while(cin>>m>>n){
char ch;
int x,y,sum,flag=0;
memset(H,0,sizeof(H)); //初始化
memset(V,0,sizeof(V));
for(int i=0;i<n;i++){ // 存数,n条边
cin>>ch>>x>>y;
if(ch=='H') H[x][y]=1;
else V[y][x]=1;
}
if(ans) cout<<endl<<"**********************************"<<endl<<endl;
cout<<"Problem #"<<++ans<<endl<<endl;
// 开始计算
for(int i=1;i<m;i++){ // 从小到大正方形
sum = count(i,m); // 有几个
if(sum){
cout<<sum<<" square (s) of size "<<i<<endl;
flag=1; // 找到正方形标记
}
}
if(!flag){
cout<<"No completed squares can be found."<<endl;
}
}
return 0;
}