/*****include*****/
#include <iostream>
#include <fstream>
#include <string>

/*****デバッグ定義*****/
//#define DEBUG
/*****マクロ定義*****/

/*****名前空間*****/
using namespace std;

/*****グローバル変数置き場*****/
int field[10][10];
/*****その他関数置き場*****/

/*****main関数*****/
int main(){
	/*****ファイルオープン*****/
#ifdef DEBUG
	ofstream fout("output.txt");
	ifstream fin("input.txt");
	if(!fout || !fin){
		cout << "Can't open the file.\n";
		return;
	}
#endif
	/*****変数置き場*****/
	int x_ax;
	int y_ax;
	int size;
	int s_y_table[] = {-1,0,1,0};
	int s_x_table[] = {0,1,0,-1};
	int m_y_table[] = {-1,-1,0,1,1,1,0,-1};
	int m_x_table[] = {0,1,1,1,0,-1,-1,-1};
	int l_y_table[] = {-2,-1,-1,0,0,1,2,1,1,0,0,-1};
	int l_x_table[] = {0,0,1,2,1,1,0,0,-1,-2,-1,-1};
	int max;
	int white;
	/*****処理部*****/
	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++)
			field[i][j] = 0;
	while(1){
		if(cin.eof())	break;
		scanf("%d,%d,%d",&x_ax,&y_ax,&size);
		switch(size){
		case 1:
			for(int i=0;i<4;i++)
				if((y_ax + s_y_table[i] < 0 || y_ax + s_y_table[i] > 9) && (x_ax + s_x_table[i] < 0 || x_ax + s_x_table[i] > 9))
					field[y_ax + s_y_table[i]][x_ax + s_x_table[i]] += 1;
			break;
		case 2:
			for(int i=0;i<8;i++)
				if((y_ax + s_y_table[i] < 0 || y_ax + s_y_table[i] > 9) && (x_ax + s_x_table[i] < 0 || x_ax + s_x_table[i] > 9))
					field[y_ax + s_y_table[i]][x_ax + s_x_table[i]] += 1;
			break;
		case 3:
			for(int i=0;i<11;i++)
				if((y_ax + s_y_table[i] < 0 || y_ax + s_y_table[i] > 9) && (x_ax + s_x_table[i] < 0 || x_ax + s_x_table[i] > 9))
					field[y_ax + s_y_table[i]][x_ax + s_x_table[i]] += 1;
			break;
		}
	}
	max = 0;
	white = 0;
	for(int i=0;i<10;i++)
		for(int j=0;j<10;j++){
			if(field[i][j] > max)
				max = field[i][j];
			if(field[i][j] == 0)
				white += 1;
		}
	cout << white << endl;
	cout << max << endl;
	/*****処理終了後*****/
#ifdef DEBUG
	fout.close();
	fin.close();
#endif
	return 0;
}