import std.stdio;
import std.conv;
import std.string;

void main() {
    auto n = readln.chomp.to!(ulong);
    auto v = readln.chomp.split.to!(ulong[]);
    ulong ans = 0;

    ulong[string] v1;
    ulong[string] v2;
    foreach(i, e; v) {
        auto j = e.to!string;
        if (i % 2) {
            if (j in v2)
                v2[j]++;
            else
                v2[j] = 1;
        } else {
            if (j in v1)
                v1[j]++;
            else
                v1[j] = 1;
        }
    }

    ulong max = 0;
    auto m1 = "0";
    auto m2 = "0";
    auto m1_2 = "0";
    auto m2_2 = "0";
    foreach(i; v1.keys){
        ans += v1[i];
        if (v1[i] >= max) {
            max = v1[i];
            m1_2 = m1;
            m1 = i;
        }
    }

    max = 0;
    foreach(i; v2.keys){
        ans += v2[i];
        if (v2[i] >= max) {
            max = v2[i];
            m2_2 = m2;
            m2 = i;
        }
    }

    if(m1 != m2) {
        ans -= v1[m1];
        ans -= v2[m2];
    } else {
        if (v1[m1] > v2[m2]) {
            ans -= v1[m1];
            if (m2_2 != "0")
                ans -= v2[m2_2];
        } else if (v1[m1] < v2[m2]) {
            ans -= v2[m2];
            if (m1_2 != "0")
                ans -= v1[m1_2];
        } else {
            if (m1_2 == "0" || m2_2 == "0") {
                ans -= v1[m1];
            } else {
                if (v1[m1_2] > v2[m2_2]) {
                    ans -= v1[m1_2];
                    ans -= v2[m2];
                } else {
                    ans -= v1[m1];
                    ans -= v2[m2_2];
                }
            }
        }
    }

    ans.writeln;
}
