def d_CardEater(N, A):

    from collections import Counter, defaultdict

    a = Counter(A)  # a[i]は数列の中にiが何回出たか

    a = sorted(list(a.items()), key=lambda x: x[0])

    d = defaultdict(int)  # aのうち2回以上出た値の一覧

    for k, v in a:

        if v >= 2:

            d[k] = v - 1  # あとの計算の便宜のため、1引いておく

    n = sum(d.values())  # 少なくとも値が重複したn枚分は捨てることになる

    if n % 2 == 0:

        ans = N - n

    else:

        # nが奇数だと、山札dの中のカードのうち1枚を、値の重複がないカードからなる

        # 山の中の1枚を道連れにして捨てる必要があるため、さらに1引く

        ans = N - n - 1

    return ans



N = int(eval(input()))

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

print((d_CardEater(N, A)))
def d_card_eater(N, A):

    # 解説どおり

    from collections import Counter

    kind = len(set(A))  # 数列に現れる値の種類の数

    ans = kind if kind % 2 == 1 else kind - 1

    return ans



N = int(eval(input()))

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

print((d_card_eater(N, A)))
def d_CardEater(N, A):
    from collections import Counter, defaultdict

    a = Counter(A)  # a[i]は数列の中にiが何回出たか
    a = sorted(list(a.items()), key=lambda x: x[0])
    d = defaultdict(int)  # aのうち2回以上出た値の一覧
    for k, v in a:
        if v >= 2:
            d[k] = v - 1  # あとの計算の便宜のため、1引いておく
    n = sum(d.values())  # 少なくとも値が重複したn枚分は捨てることになる
    if n % 2 == 0:
        ans = N - n
    else:
        # nが奇数だと、山札dの中のカードのうち1枚を、値の重複がないカードからなる
        # 山の中の1枚を道連れにして捨てる必要があるため、さらに1引く
        ans = N - n - 1
    return ans


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

def d_card_eater(N, A):
    # 解説どおり
    from collections import Counter

    kind = len(set(A))  # 数列に現れる値の種類の数
    ans = kind if kind % 2 == 1 else kind - 1
    return ans


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

-def d_CardEater(N, A): -    from collections import Counter, defaultdict +def d_card_eater(N, A): +    # 解説どおり +    from collections import Counter -    a = Counter(A)  # a[i]は数列の中にiが何回出たか -    a = sorted(list(a.items()), key=lambda x: x[0]) -    d = defaultdict(int)  # aのうち2回以上出た値の一覧 -    for k, v in a: -        if v >= 2: -            d[k] = v - 1  # あとの計算の便宜のため、1引いておく -    n = sum(d.values())  # 少なくとも値が重複したn枚分は捨てることになる -    if n % 2 == 0: -        ans = N - n -    else: -        # nが奇数だと、山札dの中のカードのうち1枚を、値の重複がないカードからなる -        # 山の中の1枚を道連れにして捨てる必要があるため、さらに1引く -        ans = N - n - 1 +    kind = len(set(A))  # 数列に現れる値の種類の数 +    ans = kind if kind % 2 == 1 else kind - 1 -print((d_CardEater(N, A))) +print((d_card_eater(N, A)))