#include<iostream>
using namespace std;
int x,y,d,n,maxm,num,sum=1,cross[170][170]; //多开2个20以免越界
int main()
{
cin>>d>>n;
for(int i=1;i<=n;i++)
{
cin>>x>>y;
cin>>cross[x+20][y+20];
}
for(int i=20;i<=148;i++)
for(int j=20;j<=148;j++)
{
for(int m=i-d;m<=i+d;m++)
for(int k=j-d;k<=j+d;k++) //四重循环。外重两个遍历交叉口的点,内层两个遍历每个点周围d范围内的公共场所数
num+=cross[m][k];
if(maxm==num) //和最大值比较。如果相等则次数+1,如果比最大值小则将次数变为1重计;
sum++;
else if(maxm<num)
sum=1;
maxm=max(maxm,num);
num=0;
}
cout<<sum<<" "<<maxm;
return 0;
}