program main
  implicit none
  integer::N,i,j,tmp,winnum,num,minnum
  character::c
  character*6::S(6)
  integer*8,allocatable::games(:,:)
  integer*8,parameter::win=2,lose=0,self=9, none=1
  type game
     integer::a,b
  end type game
  type(game)::yet(10)
  yet(:)%a=0
  yet(:)%b=0

  read *,N
  allocate(games(1:N,1:N))
  read *,S(1:N)(1:N)

  do i=1,N
     games(i,i) = self
     do j=i+1,N
        c = S(i)(j:j)
        if(c.eq.'o') then
           games(i,j) = win
           games(j,i) = lose
        else if(c.eq.'x') then
           games(i,j) = lose
           games(j,i) = win
        else if(i.eq.1) then
           games(i,j) = win
           games(j,i) = lose
        else
           games(i,j) = none
           games(j,i) = none
        end if
     end do
  end do
  winnum = COUNT(games(1,:).eq.win)
  do i=2, N
     tmp = COUNT(games(i,:).eq.win)
     if(tmp.gt.winnum) then
        do j=3, N
           if(games(i,j).eq.none) then
              games(i,j) = win
              games(j,i) = lose
           end if
        end do
     end if
  end do

  num = 0
  do i=2, N
     do j=i+1, N
        if(games(i,j).eq.none) then
           num = num + 1
           yet(num)%a = i
           yet(num)%b = j
        end if
     end do
  end do

  if(num.eq.0) then
     print '(i0)', get_grade()
     return
  endif

  minnum = N
  do i=0, 2**num-1
     do j=0, num-1
        if(btest(i, j).eqv..true.) then
           games(yet(j+1)%a,yet(j+1)%b) = win
           games(yet(j+1)%b,yet(j+1)%a) = lose
        else
           games(yet(j+1)%a,yet(j+1)%b) = lose
           games(yet(j+1)%b,yet(j+1)%a) = win
        end if
     end do
     minnum = MIN(minnum, get_grade())
  end do
  print '(i0)', minnum

contains
  function get_grade() result(w)
    integer::i,w
    integer::grades(0:N+1)
    grades = 0
    do i=2,N
       grades(COUNT(games(i,:).eq.win)) = 1
    end do
    w = SUM(grades(winnum+1:N+1)) + 1

  end function get_grade
  subroutine aprinter(array)
    integer*8::array(:)
    character*32::cformat='(i0,     (1x,i0))'
    write(cformat(5:9),'(i0)'),size(array)
    write(*,cformat) array
  end subroutine aprinter
end program main