A: Taking a Seat-Taking a Seat-

story

Mr. A entered the classroom at the examination site to take an examination. However, Mr. A is a very nervous type. Therefore, depending on the situation, there may be seats that Mr. A does not want to sit in. Therefore, Mr. A decided to find out how many seats he could sit on based on certain conditions.

problem

Mr. A is a nervous type of person. First of all, Mr. A cannot sit in the first row from the front. Because when I sit near the proctor, I get nervous and can't solve the problem. Also, if there is a person on the right or left, Mr. A cannot sit down. This is because the sound of the pencil next to me makes it impossible to concentrate during the test. In addition, you can't sit near a noisy guy (near 8 diagonally up, down, left, and right). This is because my voice echoes in my head during the break and I can't rest. Also, it's natural, but I can't sit in the seat where the students are already sitting.

Is there a place where Mr. A can sit under these conditions? Assuming that M x N seats are lined up in the classroom, let's find the number.

Input format

The first row gives M (number of rows: number of vertical seats) and N (number of columns: number of horizontal seats). From the second line, M lines and a character string of length N are given line by line. The j character of the i-th character string represents the state of the seat in the i-th row and the j-th column. Each letter is either'-',' x'or'o', vacant seats'-', noisy students sitting during breaks'x', other students sitting' Let it be o'.

Constraint

* 0 <M ≤ 100
* 0 <N ≤ 100



Output format

Output the number of seats that Mr. A can sit in one line depending on the conditions. Don't forget the line break at the end.

Input example 1


5 5
--o--
--xo-
--x--
o --- x
--xoo


Output example 1


3

Input example 2


2 6
--oooo
x--o--


Output example 2


1

Input example 3


3 5
-----
-----
-----


Output example 3


Ten

Input example 4


4 6
o-oxoo
oo-ooo
oooxo-
o-ooox


Output example 4


0





Example

Input

5 5
--o--
--xo-
--x--
o---x
--xoo


Output

3
#include <bits/stdc++.h>

using namespace std;
using ll = long long;
const vector<int> dx={+0,+1,+0,-1};
const vector<int> dy={-1,+0,+1,+0};


const vector<int> odx={+1,+1,-1,-1};
const vector<int> ody={-1,+1,+1,-1};
int main() {
    int m,n;
    cin>>m>>n;
    vector<vector<char>> d(m,vector<char>(n,'@'));
    for(int i = 0;i < m;++i) {
        for(int j = 0;j < n;++j) {
            cin>>d[i][j];
        }
    }
    vector<vector<char>> ans(m,vector<char>(n,'@'));
    for(int i = 0;i < n;++i) {
        ans[0][i]='p';
    }
    for(int i = 0;i < m;++i) {
        for(int j = 0;j < n;++j) {
            if(d[i][j]=='o') {
                ans[i][j]='p';
                for(int dir = -1;dir < 2;++dir) {
                    int ny=i,nx=j+dir;
                    if(ny<0||ny>=m||nx<0||nx>=n)continue;
                    ans[ny][nx]='p';
                }
            }
            else if(d[i][j]=='x') {
                ans[i][j]='p';
                for(int dir = 0;dir < 4;++dir) {
                    int ny=i+dx[dir],nx=j+dy[dir];
                    if(ny<0||ny>=m||nx<0||nx>=n)continue;
                    ans[ny][nx]='p';
                }
                for(int dir = 0;dir < 4;++dir) {
                    int ny=i+odx[dir],nx=j+ody[dir];
                    if(ny<0||ny>=m||nx<0||nx>=n)continue;
                    ans[ny][nx]='p';
                }
            }
        }
    }
    int ansn=0;
    for(int i = 1;i < m;++i) {
        for(int j = 0;j < n;++j) {

            if(ans[i][j]=='@')++ansn;
        }

    }
    cout<<ansn<<endl;
    return 0;
}

