#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vi = vector<int>;
using vll = vector<ll>;
using vpii = vector<pii>;
using vpll = vector<pll>;
template <class T>
inline bool setmin(T& a, T b) {
  if (a > b) return a = b, 1;
  return 0;
}
template <class T>
inline bool setmax(T& a, T b) {
  if (a < b) return a = b, 1;
  return 0;
}
namespace fastio {
template <class T>
istream& operator>>(istream& os, vector<T>& vec) {
  for (auto& u : vec) os >> u;
  return os;
}
template <class T>
ostream& operator<<(ostream& os, const vector<T>& vec) {
  for (auto& u : vec) os << u << " ";
  return os;
}
template <class T1, class T2>
inline istream& operator>>(istream& os, pair<T1, T2>& p) {
  return os >> p.first >> p.second;
}
template <class T1, class T2>
ostream& operator<<(ostream& os, const pair<T1, T2>& p) {
  return os << p.first << " " << p.second;
}
template <class T>
ostream& operator<<(ostream& os, set<T>& con) {
  for (auto& u : con) os << u << " ";
  return os;
}
void re() {}
template <typename T, typename... args>
void re(T& x, args&... tail) {
  cin >> x;
  re(tail...);
}
void pr() {}
template <typename T>
void pr(const T& x) {
  cout << x;
}
template <typename T, typename... args>
void pr(const T& x, const args&... tail) {
  cout << x << " ";
  pr(tail...);
}
template <typename... args>
void prln(const args&... tail) {
  pr(tail...);
  cout << "\n";
}
}  // namespace fastio
using namespace fastio;
namespace debug {
template <typename _T>
inline void _debug(const char* s, _T x) {
  cerr << s << " = " << x << "\n";
}
template <typename _T, typename... args>
void _debug(const char* s, _T x, args... a) {
  while (*s != ',') cerr << *s++;
  cerr << " = " << x << ',';
  _debug(s + 1, a...);
}
}  // namespace debug
using namespace debug;
constexpr int MOD = 1e9 + 7;
constexpr int INF = INT_MAX;
constexpr ll LLINF = LLONG_MAX;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n, k;
  re(n, k);
  vi ile(k + 1);
  for (int i = (0); (1) > 0 ? i < (n) : i >= (n); i += (1)) {
    int x;
    re(x);
    ile[x]++;
  }
  1999;
  int res = 0, j = 0;
  int left = n / 2 + (n & 1);
  1999;
  for (auto& i : ile) {
    while (i >= 2 and left) {
      i -= 2;
      res += 2;
      left--;
    }
  }
  1999;
  for (auto& i : ile) {
    if (i > 0 and left) {
      left--;
      res++;
    }
  }
  prln(res);
}
