#include<iostream>

using namespace std;

void small (int a[10][10],int x,int y)
{
	a[x][y]++;
	int d[2]={1,-1};
	int nx,ny;
	for(int i=0;i<2;i++){
		nx=x+d[i];
		if(nx>=0 && nx<10 && y>=0 && y<10)
			a[nx][y]++;
	}
	for(int i=0;i<2;i++){
		ny=y+d[i];
		if(x>=0 && x<10 && ny>=0 && ny<10)
			a[x][ny]++;
	}
}

void middle(int a[10][10],int x,int y)
{
	int nx,ny;
	for(int i=-1;i<=1;i++)
		for(int j=-1;j<=1;j++){
			nx=x+i;
			ny=y+j;
			if(nx>=0 && nx<10 && ny>=0 && ny<10)
			a[nx][ny]++;
		}
}

void large (int a[10][10],int x,int y)
{
	int nx,ny;
	for(int i=-1;i<=1;i++)
		for(int j=-1;j<=1;j++){
			nx=x+i;
			ny=y+j;
			if(nx>=0 && nx<10 && ny>=0 && ny<10)
			a[nx][ny]++;
		}
		int d[2]={2,-2};
	for(int i=0;i<2;i++){
		nx=x+d[i];
		if(nx>=0 && nx<10 && y>=0 && y<10)
			a[nx][y]++;
	}
	for(int i=0;i<2;i++){
		ny=y+d[i];
		if(x>=0 && x<10 && ny>=0 && ny<10)
			a[x][ny]++;
	}
}

int main()
{
	int a[10][10]={0};
	int x,y,size;
	int brank=0,c=0;

	while(scanf("%d,%d,%d",&x,&y,&size)!=EOF){
		switch(size){
		case 1:
			small(a,x,y);
			break;
		case 2:
			middle(a,x,y);
			break;
		case 3:
			large(a,x,y);
			break;
		}
	}

	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++){
			if(a[i][j]==0)
				brank++;
			else if(c<a[i][j])
				c=a[i][j];
		}
		cout<<brank<<endl;
		cout<<c<<endl;
}