#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

int n, m;
int ma[610][610];
int ps[610][610];

int sum(int a, int b, int c, int d) {
    return ps[c][d]-ps[a-1][d]-ps[c][b-1]+ps[a-1][b-1];
}

char buf[310];
int main() {
    int i, j, k;

    scanf("%d%d",&n,&m);
    for (i=1;i<=n;i++) {
        scanf("%s",buf);
        for (j=1;j<=m;j++) ma[i+j-1][i-j+m] = (buf[j-1]=='#');
    }
    for (i=1;i<n+m;i++) {
        for (j=1;j<n+m;j++) {
            ps[i][j]=ps[i-1][j]+ps[i][j-1]-ps[i-1][j-1]+ma[i][j];
        }
    }
    ll su = 0;
    for (i=1;i<n+m;i++) {
        for (j=1;j<n+m;j++) {
            if (!ma[i][j]) continue;
            for (k=1;k<n+m;k++) {
                if (k==j) continue;
                if (!ma[i][k]) continue;
                if (abs(k-j)<i)su += sum(i-abs(k-j),min(j,k),i-abs(k-j),max(j,k))-ma[i-abs(k-j)][j];
                if (abs(k-j)+i<n+m)su += sum(i+abs(k-j),min(j,k),i+abs(k-j),max(j,k))-ma[i+abs(k-j)][j];
            }
            for (k=1;k<n+m;k++) {
                if (k==i) continue;
                if (!ma[k][j]) continue;
                if (abs(k-i)<j)su += sum(min(i,k),j-abs(k-i),max(i,k),j-abs(k-i))-ma[i][j-abs(k-i)];
                if (abs(k-i)+j<n+m)su += sum(min(i,k),j+abs(k-i),max(i,k),j+abs(k-i))-ma[i][j+abs(k-i)];
            }
        }
    }
    printf("%lld\n",su/2);

    return 0;
}
