#include <bits/stdc++.h>
using namespace std;
long long G(long long a, long long b) {
  if (b == 0) return a;
  return G(b, a % b);
}
multiset<int> s;
multiset<int>::iterator it;
int b[4];
int main() {
  ios_base::sync_with_stdio(false);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int a;
    cin >> a;
    s.insert(a);
  }
  while (n > 4) {
    it = s.begin();
    int a = *it;
    s.erase(it);
    if (s.find(a + 1) == s.end()) {
      cout << "NO\n";
      return 0;
    }
    s.erase(s.find(a + 1));
    if (s.find(a + 1) == s.end()) {
      cout << "NO\n";
      return 0;
    }
    n -= 2;
  }
  if (n == 3) {
    cout << "NO\n";
    return 0;
  }
  it = s.begin();
  b[0] = *it;
  s.erase(it);
  it = s.begin();
  b[1] = *it;
  s.erase(it);
  it = s.begin();
  b[2] = *it;
  s.erase(it);
  it = s.begin();
  b[3] = *it;
  s.erase(it);
  if ((b[0] == b[1] && b[2] == b[3] && b[2] - b[1] == 1) ||
      (b[1] == b[2] && b[1] - b[0] == 1 && b[3] - b[2] == 1)) {
    cout << "YES\n";
  } else
    cout << "NO\n";
}
