#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <cmath>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;

const int MAX = 1000005;
typedef pair <int, int> PT;
int M, N;
char s[MAX];
int comp = 0;
int mx = -1;
int cur;
int up;

void dfs(int v)
{
	s[v] = '0';
	++cur;

	if (v % N != N - 1 && s[v + 1] == '1')
	{
		dfs(v + 1);
	}

	if (v % N != 0 && s[v - 1] == '1')
	{
		dfs(v - 1);
	}

	if (v - N >= 0 && s[v - N] == '1')
	{
		dfs(v - N);
	}

	if (v + N < up && s[v + N] == '1')
	{
		dfs(v + N);
	}
}

int main()
{
	scanf("%d %d\n", &M, &N);
	up = N * M;

	for (int i = 0; i < M; i++)
	{
		gets(s + i * N);
	}

	for (int i = 0; i < up; i++)
	{
		if (s[i] == '1')
		{
			++comp;
			cur = 0;
			dfs(i);

			if (cur > mx)
			{
				mx = cur;
			}
		}
	}

	printf("%d %d\n", comp, mx);

	return 0;
}
