#include <bits/stdc++.h>
using namespace std;
const int DX[8] = {1, -1, 0, 0, 1, 1, -1, -1};
const int DY[8] = {0, 0, 1, -1, 1, -1, 1, -1};
const int intmax = 0x7fffffff;
map<int, int> mp;
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int a;
    scanf("%d", &a);
    mp[a]++;
  }
  map<int, int>::iterator it = mp.begin();
  int deg = (it->second) * 2;
  int last = it->first;
  it++;
  for (; it != mp.end(); it++) {
    if ((it->first) != last + 1) {
      puts("NO");
      return 0;
    }
    if (!deg) {
      puts("NO");
      return 0;
    }
    deg = it->second * 2 - deg;
    if (deg < 0) {
      puts("NO");
      return 0;
    }
    last = it->first;
  }
  if (!deg)
    puts("YES");
  else
    puts("NO");
}
