program prob3
    implicit none
    integer::n, i, j, tmp, emax, omax, ei, oi
    integer, allocatable::v(:)
    integer::e(100000), o(100000)
    read(*,*) n
    allocate(v(n))
    read(*,*) v
    e = 0
    o = 0
    emax = 0
    omax = 0
    do i = 1, n
        tmp = v(i)
        if(mod(i,2) == 0) then
            e(tmp) = e(tmp) + 1
        else
            o(tmp) = o(tmp) + 1
        end if
    end do
    do i = 1, 100000
        if(e(i) > emax) then
            emax = e(i)
            ei = i
        end if
        if(o(i) > omax) then
            omax = o(i)
            oi = i
        end if
    end do
    if(ei /= oi) then
        write(*,*) n - emax - omax
    else
        call heapsort(100000,e)
        call heapsort(100000,o)
        write(*,*) n - max(e(99999)+o(100000), e(100000)+o(99999))
    end if
    stop
contains
    subroutine heapsort(n,array)
        implicit none
        integer,intent(in) :: n
        integer,intent(inout) :: array(1:n)
    
        integer ::i,k,j,l
        double precision :: t
    
        if(n.le.0)then
        write(6,*)"Error, at heapsort"; stop
        endif
        if(n.eq.1)return
    
        l=n/2+1
        k=n
        do while(k.ne.1)
        if(l.gt.1)then
            l=l-1
            t=array(L)
        else
            t=array(k)
            array(k)=array(1)
            k=k-1
            if(k.eq.1) then
                array(1)=t
                exit
            endif
        endif
        i=l
        j=l+l
        do while(j.le.k)
            if(j.lt.k)then
                if(array(j).lt.array(j+1))j=j+1
            endif
            if (t.lt.array(j))then
                array(i)=array(j)
                i=j
                j=j+j
            else
                j=k+1
            endif
        enddo
        array(i)=t
        enddo
    
        return
    end subroutine heapsort
end program