def c_zigzag(N, V):

    from collections import Counter

    count_seq_even = Counter(V[::2])  # 数列の(0-indexedで)偶数番目の要素の出現頻度

    count_seq_odd = Counter(V[1::2])  # 出現頻度(奇数番目)



    count_seq_even_s = sorted(list(count_seq_even.items()), key=lambda x: x[1], reverse=True)

    count_seq_odd_s = sorted(list(count_seq_odd.items()), key=lambda x: x[1], reverse=True)



    # 偶数番目からなる数列と奇数番目からなる数列のそれぞれについて、

    # 基本的には最も出現回数の多い要素に書き換えればいい。

    # ただし、それらの要素が一致する場合は書き換えられないので、

    # 2番目に出現回数の多い要素も(あれば)調べておく。(それ以下は見る必要はない)

    seq_even_select = [count_seq_even_s[k][0] for k in range(min(2, len(count_seq_even)))]

    seq_odd_select = [count_seq_odd_s[k][0] for k in range(min(2, len(count_seq_odd)))]



    ans = float('inf')

    # 両方の数列についてそれぞれ1種の要素しかなく、かつそれらが一致する

    # (全要素が等しい値)場合は、奇数番目か偶数番目かどちらかの要素を

    # すべて書き換えなければならない

    if len(seq_even_select) == 1 and len(seq_odd_select) == 1 and seq_even_select[0] == seq_odd_select[0]:

        return N // 2



    for e in seq_even_select:

        for o in seq_odd_select:

            if e == o:

                continue

            ans = min(ans, N - count_seq_even[e] - count_seq_odd[o])

    return ans



N = int(eval(input()))

V = [int(i) for i in input().split()]

print((c_zigzag(N,V)))
def c_zigzag():

    from collections import Counter

    N = int(eval(input()))

    V = [int(i) for i in input().split()]



    # 数列の(偶数|奇数)番目の要素のうち、出現頻度が高いもの上位2つを求める

    count_seq_even = Counter(V[::2]).most_common(2)

    count_seq_odd = Counter(V[1::2]).most_common(2)



    # 偶数番目を抜き出した数列と奇数番目を抜き出した数列のそれぞれについて

    # 最も出現頻度の高い要素を調べ、各々それに書き換えればいい。

    # ただし、それらが一致する場合は両方ともその要素に書き換えられないので、

    # 2番目に出現回数の多い要素も(あれば)調べておく。(3番以下を見る必要はない)



    # 両方の数列についてそれぞれ1種の要素しかなく、かつそれらが一致する

    # (全要素が等しい値)場合は、奇数番目か偶数番目かどちらかの要素を

    # すべて書き換えなければならない

    if (len(count_seq_even) == 1 and len(count_seq_odd) == 1

            and count_seq_even[0] == count_seq_odd[0]):

        return N // 2



    ans = float('inf')

    for e, ve in count_seq_even:

        for o, vo in count_seq_odd:

            if e == o:

                continue  # 一致している場合は書き換えられない

            ans = min(ans, N - (ve + vo))

    return ans



print((c_zigzag()))
def c_zigzag(N, V):
    from collections import Counter

    count_seq_even = Counter(V[::2])  # 数列の(0-indexedで)偶数番目の要素の出現頻度
    count_seq_odd = Counter(V[1::2])  # 出現頻度(奇数番目)
    count_seq_even_s = sorted(
        list(count_seq_even.items()), key=lambda x: x[1], reverse=True
    )
    count_seq_odd_s = sorted(
        list(count_seq_odd.items()), key=lambda x: x[1], reverse=True
    )
    # 偶数番目からなる数列と奇数番目からなる数列のそれぞれについて、
    # 基本的には最も出現回数の多い要素に書き換えればいい。
    # ただし、それらの要素が一致する場合は書き換えられないので、
    # 2番目に出現回数の多い要素も(あれば)調べておく。(それ以下は見る必要はない)
    seq_even_select = [
        count_seq_even_s[k][0] for k in range(min(2, len(count_seq_even)))
    ]
    seq_odd_select = [count_seq_odd_s[k][0] for k in range(min(2, len(count_seq_odd)))]
    ans = float("inf")
    # 両方の数列についてそれぞれ1種の要素しかなく、かつそれらが一致する
    # (全要素が等しい値)場合は、奇数番目か偶数番目かどちらかの要素を
    # すべて書き換えなければならない
    if (
        len(seq_even_select) == 1
        and len(seq_odd_select) == 1
        and seq_even_select[0] == seq_odd_select[0]
    ):
        return N // 2
    for e in seq_even_select:
        for o in seq_odd_select:
            if e == o:
                continue
            ans = min(ans, N - count_seq_even[e] - count_seq_odd[o])
    return ans


N = int(eval(input()))
V = [int(i) for i in input().split()]
print((c_zigzag(N, V)))

def c_zigzag():
    from collections import Counter

    N = int(eval(input()))
    V = [int(i) for i in input().split()]
    # 数列の(偶数|奇数)番目の要素のうち、出現頻度が高いもの上位2つを求める
    count_seq_even = Counter(V[::2]).most_common(2)
    count_seq_odd = Counter(V[1::2]).most_common(2)
    # 偶数番目を抜き出した数列と奇数番目を抜き出した数列のそれぞれについて
    # 最も出現頻度の高い要素を調べ、各々それに書き換えればいい。
    # ただし、それらが一致する場合は両方ともその要素に書き換えられないので、
    # 2番目に出現回数の多い要素も(あれば)調べておく。(3番以下を見る必要はない)
    # 両方の数列についてそれぞれ1種の要素しかなく、かつそれらが一致する
    # (全要素が等しい値)場合は、奇数番目か偶数番目かどちらかの要素を
    # すべて書き換えなければならない
    if (
        len(count_seq_even) == 1
        and len(count_seq_odd) == 1
        and count_seq_even[0] == count_seq_odd[0]
    ):
        return N // 2
    ans = float("inf")
    for e, ve in count_seq_even:
        for o, vo in count_seq_odd:
            if e == o:
                continue  # 一致している場合は書き換えられない
            ans = min(ans, N - (ve + vo))
    return ans


print((c_zigzag()))

-def c_zigzag(N, V): +def c_zigzag(): -    count_seq_even = Counter(V[::2])  # 数列の(0-indexedで)偶数番目の要素の出現頻度 -    count_seq_odd = Counter(V[1::2])  # 出現頻度(奇数番目) -    count_seq_even_s = sorted( -        list(count_seq_even.items()), key=lambda x: x[1], reverse=True -    ) -    count_seq_odd_s = sorted( -        list(count_seq_odd.items()), key=lambda x: x[1], reverse=True -    ) -    # 偶数番目からなる数列と奇数番目からなる数列のそれぞれについて、 -    # 基本的には最も出現回数の多い要素に書き換えればいい。 -    # ただし、それらの要素が一致する場合は書き換えられないので、 -    # 2番目に出現回数の多い要素も(あれば)調べておく。(それ以下は見る必要はない) -    seq_even_select = [ -        count_seq_even_s[k][0] for k in range(min(2, len(count_seq_even))) -    ] -    seq_odd_select = [count_seq_odd_s[k][0] for k in range(min(2, len(count_seq_odd)))] -    ans = float("inf") +    N = int(eval(input())) +    V = [int(i) for i in input().split()] +    # 数列の(偶数|奇数)番目の要素のうち、出現頻度が高いもの上位2つを求める +    count_seq_even = Counter(V[::2]).most_common(2) +    count_seq_odd = Counter(V[1::2]).most_common(2) +    # 偶数番目を抜き出した数列と奇数番目を抜き出した数列のそれぞれについて +    # 最も出現頻度の高い要素を調べ、各々それに書き換えればいい。 +    # ただし、それらが一致する場合は両方ともその要素に書き換えられないので、 +    # 2番目に出現回数の多い要素も(あれば)調べておく。(3番以下を見る必要はない) -        len(seq_even_select) == 1 -        and len(seq_odd_select) == 1 -        and seq_even_select[0] == seq_odd_select[0] +        len(count_seq_even) == 1 +        and len(count_seq_odd) == 1 +        and count_seq_even[0] == count_seq_odd[0] -    for e in seq_even_select: -        for o in seq_odd_select: +    ans = float("inf") +    for e, ve in count_seq_even: +        for o, vo in count_seq_odd: -                continue -            ans = min(ans, N - count_seq_even[e] - count_seq_odd[o]) +                continue  # 一致している場合は書き換えられない +            ans = min(ans, N - (ve + vo)) -N = int(eval(input())) -V = [int(i) for i in input().split()] -print((c_zigzag(N, V))) +print((c_zigzag()))