#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string table[50];
int x,y;

int recur (int a, int b, int sum, int dir) {
//cout<<"up";
if (dir!=3) {
    if (a>0) if (table[a-1][b]!='#') {
//       printf ("\n***go up***\n");
       table[a-1][b]='#';
       sum = recur (a-1,b,sum+1,1); 
    }
}
//cout<<"down";
if (dir!=1) {
    if (a<(x-1)) if (table[a+1][b]!='#') {
//       printf ("\n***go down***\n");
       table[a+1][b]='#'; 
       sum = recur (a+1,b,sum+1,3);
    }
}
//cout<<"left";
if (dir!=2) {
    if (b>0) if (table[a][b-1]!='#') {
//       printf ("\n***go left***\n");
       table[a][b-1]='#'; 
       sum = recur (a,b-1,sum+1,4);
 
    }
}
//cout<<"right";
if (dir!=4) {
    if (b<(y-1)) if (table[a][b+1]!='#') {
//       printf ("\n***go right***\n");
       table[a][b+1]='#';
       sum = recur (a,b+1,sum+1,2);            
    }
}
    return sum;
}

main () {
	int i,j;
	char out;
	int test;
    ifstream fin("DATA3.txt");
    ofstream fout("OUT3.txt");
	fin>>x;
	fin>>y;
	for (i=0;i<x;i++) fin>>table[i];
//	for (i=0;i<x;i++,printf ("\n")) cout<<table[i];
	
	for (out='1';out<='5';out++) {
		for (i=0;i<x;i++) for (j=0;j<y;j++) {
		    if (table[i][j]==out) {
               table[i][j]='#';
               fout<<recur (i,j,1,0)<<"\n";
//               printf ("\nONE CASE DONE\n");        
            }
		}
	}
}

