#include <bits/stdc++.h>
using namespace std;
typedef vector<string> vs;
typedef vector<vector<int>> vvi;
typedef vector<list<int>> vli;
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef vector<string> vs;
typedef vector<bool> vb;
typedef long long ll;
typedef double db;
typedef priority_queue<int> pq;
typedef vector<vector<pii>> vvp;
typedef vector<pii> vpi;
#define fi first
#define se second
#define FOR(i,s,e,d) for(int i=s;i<e;i+=d)
#define FORL(i,s,e,d) for(ll i=s;i<e;i+=d)
#define RFOR(i,s,e,d) for(int i=s;i>=e;i+=d)
#define RFORL(i,s,e,d) for(ll i=s;i>=e;i+=d)
int n;
int dir[][2]{{1,0},{-1,0},{0,1},{0,-1}};
char cmap[101][101]; // (0,0)부터
bool visit[101][101];
void ndfs(int y, int x){
visit[y][x]=true;
FOR(i,0,4,1){
int nexty=y+dir[i][0];
int nextx=x+dir[i][1];
if(nexty>=0&&nexty<n&&nextx>=0&&nextx<n&&!visit[nexty][nextx]&&cmap[nexty][nextx]==cmap[y][x])
ndfs(nexty,nextx);
}
}
void ddfs(int y, int x){
visit[y][x]=true;
FOR(i,0,4,1){
int nexty=y+dir[i][0];
int nextx=x+dir[i][1];
if(nexty>=0&&nexty<n&&nextx>=0&&nextx<n&&!visit[nexty][nextx]){
if((cmap[y][x]=='R'||cmap[y][x]=='G')&&(cmap[nexty][nextx]=='R'||cmap[nexty][nextx]=='G'))
ndfs(nexty,nextx);
else if(cmap[y][x]==cmap[nexty][nextx])
ndfs(nexty,nextx);
}
}
}
int main(){
cin.tie(NULL);
cout.tie(NULL);
ios_base::sync_with_stdio(false);
cin>>n;
FOR(i,0,n,1){
string in;
cin>>in;
FOR(j,0,n,1)
cmap[i][j]=in[j];
}
// 정상인
FOR(i,0,n,1)
fill(visit[i],visit[i]+n,false);
int nret=0;
FOR(i,0,n,1)
FOR(j,0,n,1)
if(!visit[i][j]){
nret++;
ndfs(i,j);
}
// 색맹
FOR(i,0,n,1)
fill(visit[i],visit[i]+n,false);
int dret=0;
FOR(i,0,n,1)
FOR(j,0,n,1)
if(!visit[i][j]){
dret++;
ddfs(i,j);
}
cout<<nret<<" "<<dret<<'\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgdmVjdG9yPHN0cmluZz4gdnM7CnR5cGVkZWYgdmVjdG9yPHZlY3RvcjxpbnQ+PiB2dmk7CnR5cGVkZWYgdmVjdG9yPGxpc3Q8aW50Pj4gdmxpOyAKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKdHlwZWRlZiB2ZWN0b3I8c3RyaW5nPiB2czsKdHlwZWRlZiB2ZWN0b3I8Ym9vbD4gdmI7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGRvdWJsZSBkYjsKdHlwZWRlZiBwcmlvcml0eV9xdWV1ZTxpbnQ+IHBxOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8cGlpPj4gdnZwOwp0eXBlZGVmIHZlY3RvcjxwaWk+IHZwaTsKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIEZPUihpLHMsZSxkKSBmb3IoaW50IGk9cztpPGU7aSs9ZCkKI2RlZmluZSBGT1JMKGkscyxlLGQpIGZvcihsbCBpPXM7aTxlO2krPWQpCiNkZWZpbmUgUkZPUihpLHMsZSxkKSBmb3IoaW50IGk9cztpPj1lO2krPWQpCiNkZWZpbmUgUkZPUkwoaSxzLGUsZCkgZm9yKGxsIGk9cztpPj1lO2krPWQpCmludCBuOwppbnQgZGlyW11bMl17ezEsMH0sey0xLDB9LHswLDF9LHswLC0xfX07CmNoYXIgY21hcFsxMDFdWzEwMV07IC8vICgwLDAp67aA7YSwCmJvb2wgdmlzaXRbMTAxXVsxMDFdOwp2b2lkIG5kZnMoaW50IHksIGludCB4KXsKCXZpc2l0W3ldW3hdPXRydWU7CglGT1IoaSwwLDQsMSl7CgkJaW50IG5leHR5PXkrZGlyW2ldWzBdOwoJCWludCBuZXh0eD14K2RpcltpXVsxXTsKCQlpZihuZXh0eT49MCYmbmV4dHk8biYmbmV4dHg+PTAmJm5leHR4PG4mJiF2aXNpdFtuZXh0eV1bbmV4dHhdJiZjbWFwW25leHR5XVtuZXh0eF09PWNtYXBbeV1beF0pCgkJCW5kZnMobmV4dHksbmV4dHgpOwoJfQp9CnZvaWQgZGRmcyhpbnQgeSwgaW50IHgpewoJdmlzaXRbeV1beF09dHJ1ZTsKCUZPUihpLDAsNCwxKXsKCQlpbnQgbmV4dHk9eStkaXJbaV1bMF07CgkJaW50IG5leHR4PXgrZGlyW2ldWzFdOwoJCWlmKG5leHR5Pj0wJiZuZXh0eTxuJiZuZXh0eD49MCYmbmV4dHg8biYmIXZpc2l0W25leHR5XVtuZXh0eF0pewoJCQlpZigoY21hcFt5XVt4XT09J1InfHxjbWFwW3ldW3hdPT0nRycpJiYoY21hcFtuZXh0eV1bbmV4dHhdPT0nUid8fGNtYXBbbmV4dHldW25leHR4XT09J0cnKSkKCQkJCW5kZnMobmV4dHksbmV4dHgpOwoJCQllbHNlIGlmKGNtYXBbeV1beF09PWNtYXBbbmV4dHldW25leHR4XSkKCQkJCW5kZnMobmV4dHksbmV4dHgpOwoJCX0KCX0KfQppbnQgbWFpbigpewoJY2luLnRpZShOVUxMKTsKCWNvdXQudGllKE5VTEwpOwoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4+Pm47CglGT1IoaSwwLG4sMSl7CgkJc3RyaW5nIGluOwoJCWNpbj4+aW47CgkJRk9SKGosMCxuLDEpCgkJCWNtYXBbaV1bal09aW5bal07Cgl9CgkvLyDsoJXsg4HsnbgKCUZPUihpLDAsbiwxKQoJCWZpbGwodmlzaXRbaV0sdmlzaXRbaV0rbixmYWxzZSk7CglpbnQgbnJldD0wOwoJRk9SKGksMCxuLDEpCgkJRk9SKGosMCxuLDEpCgkJCWlmKCF2aXNpdFtpXVtqXSl7CgkJCQlucmV0Kys7CgkJCQluZGZzKGksaik7CgkJCX0KCS8vIOyDieunuQoJRk9SKGksMCxuLDEpCgkJZmlsbCh2aXNpdFtpXSx2aXNpdFtpXStuLGZhbHNlKTsKCWludCBkcmV0PTA7CglGT1IoaSwwLG4sMSkKCQlGT1IoaiwwLG4sMSkKCQkJaWYoIXZpc2l0W2ldW2pdKXsKCQkJCWRyZXQrKzsKCQkJCWRkZnMoaSxqKTsKCQkJfQoJY291dDw8bnJldDw8IiAiPDxkcmV0PDwnXG4nOwoJcmV0dXJuIDA7Cn0=