/*
假設路徑是 a − b − c − d,考慮列舉中間這條邊 b − c,計
算有多少可行的 a 和 d。
設 degx 表示點 x 的度數,那麼邊 b − c 對答案的貢獻為
(degb − 1)(degc − 1)− 經過 b − c 這條邊的三元環個數。
計算三元環的個數只需要列舉除 b; c 之外的另一個點即可。
位運算優化
*/
#include<cstdio>
const int N=;
int cnt[],m,n,i,j,d[N];char g[N][N];long long ans;
int popcount(unsigned int x){return cnt[x>>]+cnt[x&];}
struct BIT{
unsigned int v[];
void set(int x){v[x>>]|=1U<<(x&);}
void count(const BIT&b){for(int i=;i<=m;i++)ans-=popcount(v[i]&b.v[i]);}
}f[N];
int main(){
freopen("tour.in","r",stdin);freopen("tour.out","w",stdout);
for(i=;i<;i++)cnt[i]=cnt[i>>]+(i&);
scanf("%d",&n);m=(n-)>>;
for(i=;i<n;i++){
scanf("%s",g[i]);
for(j=;j<n;j++)if(g[i][j]=='')f[i].set(j),d[i]++;
}
for(i=;i<n;i++)for(j=;j<i;j++)if(g[i][j]=='')ans+=(d[i]-)*(d[j]-),f[i].count(f[j]);
printf("%I64d",ans*);
fclose(stdin);fclose(stdout);
return ;
}