import java.util.*; public class Main { static int ansa =7; static char[][] kekka; static char[][] copy(char[][] from){ int aa = from[0].length; char[][] to = new char[aa][aa]; for(int i=0;i<aa;i++){ for(int j=0;j<aa;j++){ to[i][j]=from[i][j]; } } return to; } static void dfs(char[][] map,int n){ for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(map[i][j]=='-'){ map[i][j]='o'; map[j][i]='x'; dfs(map,n); map[i][j]='x'; map[j][i]='o'; dfs(map,n); return; } } } int[] kazu = new int[n]; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(kekka[i][j]=='o') kazu[i]++; } } int aa=kazu[0]; Arrays.sort(kazu); int ans=1; int now=kazu[n-1]; for(int i=n-1;i>=0;i--){ if(kazu[i]<now){ ans++; now=kazu[i]; } if(now==aa){ break; } } ansa=Math.min(ansa,ans); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n= sc.nextInt(); kekka= new char[n][n]; int[] kazu = new int[n]; for(int i=0;i<n;i++){ String ss=sc.next(); for(int j=0;j<n;j++){ kekka[i][j]=ss.charAt(j); } } dfs(kekka,n); System.out.println(ansa); } }