import java.util.Scanner

object Main {
    def main(args: Array[String]): Unit = {
        val scanner = new Scanner(System.in)
        val n: Int = scanner.nextInt
        val vs: List[Int] = List.fill(n)(scanner.nextInt)
        println(calc(vs))
    }

    def calc(nums: List[Int] ): Int ={
        val (evens, odds) = nums.zipWithIndex.partition(_._2 % 2 == 0)
        val evenCounter: Map[Int, Int] = evens.map(_._1).groupBy(even => even).mapValues(_.length)
        val oddCounter: Map[Int, Int] = odds.map(_._1).groupBy(odd=>odd).mapValues(_.length)
        val sortedEvenCounter: Seq[(Int, Int)] = evenCounter.toSeq.sortBy(_._2).reverse
        val sortedOddCounter:Seq[(Int, Int)] = oddCounter.toSeq.sortBy(_._2).reverse
        val evenKeys: Set[Int] = evenCounter.keySet
        val oddKeys: Set[Int] = oddCounter.keySet

        if (evenKeys.size == 1 && oddKeys.size == 1 && (evenKeys diff oddKeys).size != 0 )
            return 0

        val count:Int = countNumberOfRewrite(sortedEvenCounter, sortedOddCounter)
        val count2:Int = countNumberOfRewrite(sortedOddCounter, sortedEvenCounter)

        count.min(count2)
    }

    def countNumberOfRewrite(seqTuple01 : Seq[(Int, Int)], seqTuple02 :Seq[(Int, Int)]): Int ={
        try{
            seqTuple01.map(_._2).sum - seqTuple01(0)._2 + seqTuple02.map(_._2).sum - seqTuple02(1)._2
        }catch { case e: Exception => Int.MaxValue}
    }
}
