#include <bits/stdc++.h>
void merge(int *p, int l, int m, int r);
void mergeSort(int *p, int l, int r);
int main(int argc, char const *argv[]) {
  int n, i, h = 0, j, k;
  scanf("%d", &n);
  int balls[n];
  for (i = 0; i < n; i++) {
    scanf("%d", &balls[i]);
  }
  mergeSort(balls, 0, n - 1);
  for (i = 0; i < n - 2; i++) {
    for (j = i + 1; j < n - 1; j++) {
      if (abs(balls[i] - balls[j]) < 3 && balls[i] != balls[j]) {
        for (k = j + 1; k < n; k++) {
          if (abs(balls[i] - balls[k]) < 3 && abs(balls[j] - balls[k]) < 3 &&
              balls[i] != balls[k] && balls[k] != balls[j]) {
            if (balls[i] != balls[j] && balls[j] != balls[k] &&
                balls[i] != balls[k]) {
              h = 1;
            } else {
              h = 0;
            }
          }
        }
      }
    }
  }
  if (h) {
    printf("YES");
  } else {
    printf("NO");
  }
  return 0;
}
void mergeSort(int *p, int l, int r) {
  if (l < r) {
    int m = (l + r) / 2;
    mergeSort(p, l, m);
    mergeSort(p, m + 1, r);
    merge(p, l, m, r);
  }
}
void merge(int *p, int l, int m, int r) {
  int n1, n2, i, j, k;
  n1 = m - l + 1;
  n2 = r - m;
  int v1[n1], v2[n2];
  for (i = 0; i < n1; i++) {
    v1[i] = *(p + (l + i));
  }
  for (j = 0; j < n2; j++) {
    v2[j] = *(p + (j + m + 1));
  }
  i = 0;
  j = 0;
  k = l;
  while (i < n1 && j < n2) {
    if (v1[i] <= v2[j]) {
      *(p + k) = v1[i];
      i++;
    } else {
      *(p + k) = v2[j];
      j++;
    }
    k++;
  }
  while (i < n1) {
    *(p + k) = v1[i];
    i++;
    k++;
  }
  while (j < n2) {
    *(p + k) = v2[j];
    k++;
    j++;
  }
}
