import java.util.Scanner;
public class Main {
static int size;
static char arr[][];
static boolean visit[][];
static int result1;
static int result2;
static int dx[]= {-1,0,1,0};
static int dy[]= {0,1,0,-1};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
size= sc.nextInt();
sc.nextLine();
arr= new char[size][size];
visit=new boolean[size][size];
for(int i=0;i<size;i++) {
String s = sc.nextLine();
for(int j=0;j<size;j++) {
arr[i][j]=s.charAt(j);
}
}
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
if(visit[i][j]==false) {
result1++;
char temp=arr[i][j];
DFS(i,j,temp);
}
}
}
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
if(arr[i][j]=='G') {
arr[i][j]='R';
}
}
}
checkVisit();
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
if(visit[i][j]==false) {
result2++;
char temp= arr[i][j];
DFS(i,j,temp);
}
}
}
System.out.print(result1+" "+result2);
}
private static void checkVisit() {
for(int i=0;i<size;i++) {
for(int j=0;j<size;j++) {
visit[i][j]=false;
}
}
}
private static void DFS(int x, int y,char temp) {
visit[x][y]=true;
for(int i=0;i<4;i++) {
int rx= x+dx[i];
int ry=y+dy[i];
if(rx<0||ry<0||ry>=size||rx>=size) {
continue;
}if(visit[rx][ry]==true) {
continue;
}if(arr[rx][ry]!=temp) {
continue;
}if(arr[rx][ry]==temp&&visit[rx][ry]==false) {
visit[rx][ry]=true;
DFS(rx,ry,temp);
}
}
return;
}
}