# -*- coding: utf-8 -*-



import sys

def input(): return sys.stdin.readline().strip()

sys.setrecursionlimit(10 ** 9)

INF = float('inf')

MOD = 10 ** 9 + 7



from collections import Counter



N = int(eval(input()))

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



dups = Counter(aN)

for k, v in list(dups.items()):

    dups[k] -= 1

aN = sorted(set(aN))



if sum(dups.values()) % 2 == 0:

    print((len(aN)))

else:

    print((len(aN)-1))

# -*- coding: utf-8 -*-



import sys

from collections import Counter



def input(): return sys.stdin.readline().strip()

def list2d(a, b, c): return [[c] * b for i in range(a)]

def list3d(a, b, c, d): return [[[d] * c for j in range(b)] for i in range(a)]

def list4d(a, b, c, d, e): return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]

def ceil(x, y=1): return int(-(-x // y))

def INT(): return int(eval(input()))

def MAP(): return list(map(int, input().split()))

def LIST(N=None): return list(MAP()) if N is None else [INT() for i in range(N)]

def Yes(): print('Yes')

def No(): print('No')

def YES(): print('YES')

def NO(): print('NO')

sys.setrecursionlimit(10 ** 9)

INF = 10 ** 18

MOD = 10 ** 9 + 7



N = INT()

A = LIST()



C = Counter(A)

for k in list(C.keys()):

    C[k] -= 1



cnt = ceil(sum(C.values()), 2)

ans = N - cnt * 2

print(ans)

# -*- coding: utf-8 -*-
import sys


def input():
    return sys.stdin.readline().strip()


sys.setrecursionlimit(10**9)
INF = float("inf")
MOD = 10**9 + 7
from collections import Counter

N = int(eval(input()))
aN = list(map(int, input().split()))
dups = Counter(aN)
for k, v in list(dups.items()):
    dups[k] -= 1
aN = sorted(set(aN))
if sum(dups.values()) % 2 == 0:
    print((len(aN)))
else:
    print((len(aN) - 1))

# -*- coding: utf-8 -*-
import sys
from collections import Counter


def input():
    return sys.stdin.readline().strip()


def list2d(a, b, c):
    return [[c] * b for i in range(a)]


def list3d(a, b, c, d):
    return [[[d] * c for j in range(b)] for i in range(a)]


def list4d(a, b, c, d, e):
    return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)]


def ceil(x, y=1):
    return int(-(-x // y))


def INT():
    return int(eval(input()))


def MAP():
    return list(map(int, input().split()))


def LIST(N=None):
    return list(MAP()) if N is None else [INT() for i in range(N)]


def Yes():
    print("Yes")


def No():
    print("No")


def YES():
    print("YES")


def NO():
    print("NO")


sys.setrecursionlimit(10**9)
INF = 10**18
MOD = 10**9 + 7
N = INT()
A = LIST()
C = Counter(A)
for k in list(C.keys()):
    C[k] -= 1
cnt = ceil(sum(C.values()), 2)
ans = N - cnt * 2
print(ans)

+from collections import Counter +def list2d(a, b, c): +    return [[c] * b for i in range(a)] + + +def list3d(a, b, c, d): +    return [[[d] * c for j in range(b)] for i in range(a)] + + +def list4d(a, b, c, d, e): +    return [[[[e] * d for j in range(c)] for j in range(b)] for i in range(a)] + + +def ceil(x, y=1): +    return int(-(-x // y)) + + +def INT(): +    return int(eval(input())) + + +def MAP(): +    return list(map(int, input().split())) + + +def LIST(N=None): +    return list(MAP()) if N is None else [INT() for i in range(N)] + + +def Yes(): +    print("Yes") + + +def No(): +    print("No") + + +def YES(): +    print("YES") + + +def NO(): +    print("NO") + + -INF = float("inf") +INF = 10**18 -from collections import Counter - -N = int(eval(input())) -aN = list(map(int, input().split())) -dups = Counter(aN) -for k, v in list(dups.items()): -    dups[k] -= 1 -aN = sorted(set(aN)) -if sum(dups.values()) % 2 == 0: -    print((len(aN))) -else: -    print((len(aN) - 1)) +N = INT() +A = LIST() +C = Counter(A) +for k in list(C.keys()): +    C[k] -= 1 +cnt = ceil(sum(C.values()), 2) +ans = N - cnt * 2 +print(ans)