#include <iostream>

using namespace std;


int main()
{
    int y;
    int x;
    int n = 1;

    cin >> y;
    cin >> x;
    char polje [y][x];
    bool vec[y][x];
    bool promena = true;
    for(int i = 0; i < y; i++){
        for(int j = 0; j < x; j++){
            vec[i][j]=false;
            cin >> polje[i][j];



        }
    }
    while(promena){
            promena = false;
       for(int i = 0; i < y; i++){
            for(int j = 0; j < x; j++){
                if(polje[i][j] == 'X'&&!vec[i][j]){
                    if(i + 1 < y && polje[i + 1][j] == '.')
                        polje[i + 1][j] = '0';
                    if(j + 1 < x && polje[i][j + 1] == '.')
                        polje[i][j + 1] = '0';
                    if(i - 1 >= 0 && polje[i - 1][j] == '.')
                        polje[i - 1][j] = '0';
                    if(j - 1 >= 0 && polje[i][j - 1] == '.')
                        polje[i][j - 1] = '0';
                    vec[i][j]=true;
                }
                else if(polje[i][j] == '1')
                    polje[i][j] = 'S';
            }
        }
// stevan je elitrom mnogo brzi od vatre pa bi trebao da uspe mnogo vise da predje
        for(int i = 0; i < y; i++){
            for(int j = 0; j < x; j++){
                if(polje[i][j] == 'S'&&!vec[i][j]){
                    if(i + 1 < y && polje[i + 1][j] == '.'){
                        polje[i + 1][j] = '1';
                        promena = true;
                        n++;
                    }
                    if(j + 1 < x && polje[i][j + 1] == '.'){
                        polje[i][j + 1] = '1';
                        promena = true;
                        n++;
                    }
                    if(i - 1 >= 0 && polje[i - 1][j] == '.'){
                        polje[i - 1][j] = '1';
                        promena = true;
                        n++;
                    }

                    if(j - 1 >= 0 && polje[i][j - 1] == '.'){
                        polje[i][j - 1] = '1';
                        promena = true;
                        n++;
                    }
                    vec[i][j]=true;
                }
                else if(polje[i][j] == '0')
                    polje[i][j] = 'X';
            }
        }
    }

    cout << n;
    return 0;
}