#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
int n, m, k, a, k1, k2, d, ok, r, i, tab[200005], dod;
map<int, int> mapa1, mapa2;
set<int> zb;
set<int>::iterator it;
int main() {
  scanf("%d %d %d", &n, &m, &k);
  mapa1.clear();
  mapa2.clear();
  zb.clear();
  while (n--) {
    scanf("%d", &a);
    mapa1[a]++;
    zb.insert(a);
  }
  while (m--) {
    scanf("%d", &a);
    mapa2[a]++;
    zb.insert(a);
  }
  d = 0;
  for (it = zb.begin(); it != zb.end(); it++) {
    k1 = mapa1[*it];
    k2 = mapa2[*it];
    if (k1 != k2) {
      dod = 0;
      if (k1 > k2)
        for (d = d; dod < (k1 - k2); d++, dod++) tab[d] = 1;
      else
        for (d = d; dod < (k2 - k1); d++, dod++) tab[d] = 0;
    }
  }
  ok = 0;
  r = 0;
  for (i = d - 1; i >= 0; i--) {
    if (tab[i] == 1)
      r++;
    else
      r--;
    if (r > 0) ok = 1;
  }
  if (ok)
    printf("YES\n");
  else
    printf("NO\n");
  return 0;
}
