// AOJ Volume0-0026
// Dropping Ink

#include<bits/stdc++.h>
using namespace std;

int maps[10][10]={};

int dx[12]={0,-1,0,1,-2,-1,1,2,-1,0,1,0};
int dy[12]={-2,-1,-1,-1,0,0,0,0,1,1,1,2};

int main()
{
  int x,y,s;
  while(scanf("%d,%d,%d",&x,&y,&s)!=EOF){
    if(s==1){
      // サイズ：小
      for(int i=0;i<4;i++){
	int nx,ny;
	switch(i){
	case 0:
	  nx=x+dx[2];
	  ny=y+dy[2];
	  break;
	case 1:
	  nx=x+dx[5];
	  ny=y+dy[5];
	  break;
	case 2:
	  nx=x+dx[6];
	  ny=y+dy[6];
	  break;
	case 3:
	  nx=x+dx[9];
	  ny=y+dy[9];
	}
	if(nx>=0 && ny>=0 && nx<10 && ny<10){
	  maps[ny][nx]++;
	}
      }
    }else if(s==2){
      // サイズ：中
      for(int i=1;i<11;i++){
	if(i!=4 && i!=7){
	  int nx=x+dx[i];
	  int ny=y+dy[i];
	  if(nx>=0 && ny>=0 && nx<10 && ny<10){
	    maps[ny][nx]++;
	  }
	}
      }
    }else{
      // サイズ：大
      for(int i=0;i<12;i++){
	int nx=x+dx[i];
	int ny=y+dy[i];
	if(nx>=0 && ny>=0 && nx<10 && ny<10){
	  maps[ny][nx]++;
	}
      }
    }
  }
    
  int m=0;
  int cnt=0;
  for(int i=0;i<10;i++){
    for(int j=0;j<10;j++){
      m=max(m,maps[i][j]);
      if(maps[i][j]==0) cnt++;
    }
  }
  
  cout << cnt << endl;
  cout << m << endl;

  return 0;
}

