fun main(args: Array<String>) {
  val n = readLine()!!.toInt()
  val v = readLine()!!.split(" ").map { it.toInt() }
  var emp = mutableMapOf<Int, Int>(0 to 0)
  var omp = mutableMapOf<Int, Int>(0 to 0)
  for (i in 0 until n) {
    if (i % 2 == 0) {
      emp[v[i]] = emp.getOrElse(v[i], { 0 }) + 1
    } else {
      omp[v[i]] = omp.getOrElse(v[i], { 0 }) + 1
    }
  }
  val emf = emp.maxBy { it.value }!!
  val omf = omp.maxBy { it.value }!!
  val ems = emp.maxBy { if (it.key == emf.key) 0 else it.value }!!
  val oms = omp.maxBy { if (it.key == omf.key) 0 else it.value }!!
  val en = (n + 1) / 2
  val on = n - en
  if (emf.key != omf.key) {
    println((en - emf.value) + (on - omf.value))
  } else {
    println(arrayOf((en - emf.value) + (on - oms.value), (en - ems.value) + (on - omf.value)).min()!!)
  }
}
