n = int(eval(input()))

nums = list(map(int, input().split()))



# これ直前に解いた

# 重複している=取り除かなきゃいけない枚数の2の倍数切り上げ。



nums.sort()

sequential = 1

before = nums[0]

dup = 0

for i in nums[1:]:

    if i == before:

        sequential += 1

    else:

        dup += sequential - 1

        sequential = 1

    before = i



dup += sequential - 1



print((n - (dup + 1) // 2 * 2))

# カードの山に k 種類のカードがあったとして，k が奇数なら余っているカードは偶数枚あるの

# で答えは k であり，偶数ならばどこかで必ず 1 枚しかないカードを 1 回取り除く必要があるので

# 答えは k − 1 となります．



n = int(eval(input()))

nums = list(map(int, input().split()))



k = len(set(nums))

print((k if k % 2 == 1 else k-1))

n = int(eval(input()))
nums = list(map(int, input().split()))
# これ直前に解いた
# 重複している=取り除かなきゃいけない枚数の2の倍数切り上げ。
nums.sort()
sequential = 1
before = nums[0]
dup = 0
for i in nums[1:]:
    if i == before:
        sequential += 1
    else:
        dup += sequential - 1
        sequential = 1
    before = i
dup += sequential - 1
print((n - (dup + 1) // 2 * 2))

# カードの山に k 種類のカードがあったとして，k が奇数なら余っているカードは偶数枚あるの
# で答えは k であり，偶数ならばどこかで必ず 1 枚しかないカードを 1 回取り除く必要があるので
# 答えは k − 1 となります．
n = int(eval(input()))
nums = list(map(int, input().split()))
k = len(set(nums))
print((k if k % 2 == 1 else k - 1))

+# カードの山に k 種類のカードがあったとして，k が奇数なら余っているカードは偶数枚あるの +# で答えは k であり，偶数ならばどこかで必ず 1 枚しかないカードを 1 回取り除く必要があるので +# 答えは k − 1 となります． -# これ直前に解いた -# 重複している=取り除かなきゃいけない枚数の2の倍数切り上げ。 -nums.sort() -sequential = 1 -before = nums[0] -dup = 0 -for i in nums[1:]: -    if i == before: -        sequential += 1 -    else: -        dup += sequential - 1 -        sequential = 1 -    before = i -dup += sequential - 1 -print((n - (dup + 1) // 2 * 2)) +k = len(set(nums)) +print((k if k % 2 == 1 else k - 1))