import std.stdio;
import std.string;
import std.conv,std.array;
void main(){
	//auto i = to!int( readln().chomp() );
	Map map = new Map();
	while(1){
		auto cs = readln().chomp().split(",");
		if( !cs ){	break;	}
		map.drop( to!int(cs[0]), to!int(cs[1]), to!int(cs[2]) );
	}
	writeln(map.not);
	writeln(map.max);
}
class Map{
	int[10][10] map;
	int not = 10*10;
	int max = 0;
	void drop( int x, int y, int w ){
		drop(x,y);
		drop(x,y+1);
		drop(x+1,y);
		drop(x,y-1);
		drop(x-1,y);
		if( w<2 ){	return;	}
		drop(x+1,y+1);
		drop(x+1,y-1);
		drop(x-1,y+1);
		drop(x-1,y-1);
		if( w<3 ){	return;	}
		drop(x+2,y);
		drop(x-2,y);
		drop(x,y+2);
		drop(x,y-2);
	}
	void drop( int x,int y ){
		if(	x<0 || y<0 || 9<x || 9<y ){	return;	}
		map[x][y]+=1;
		if( map[x][y] == 1 ){	not--;	}
		if( max < map[x][y] ){	max = map[x][y];	}
	}
	
}