void floyd(){
	for(int k=1;k<=n;k++){
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
			}
		}
	}
}
for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)f[i][j]=(f[i][j]||f[i][k]&&f[k][j]);
	for(int i=1;i<=n;i++){
		int cnt=0;
		for(int j=1;j<=n;j++)if(f[i][j]||f[j][i])cnt++;
		if(cnt==n-1)sum++;
	}
void floyd(){
	for(int k=1;k<=n;k++){
		for(int i=1;i<k;i++){
			for(int j=1;j<i;j++){
				if(g[i][k]==-1||g[k][j]==-1)continue;
				minn=min(minn,f[i][j]+g[i][k]+g[k][j]);
			}
		}
		for(int i=1;i<=n;i++){
			for(int j=1;j<i;j++){
				int t=f[i][k]+f[k][j];
				if(t<f[i][j])f[i][j]=f[j][i]=t;
			}
		}
	}
}