#include <bits/stdc++.h>
namespace io {
const int SIZE = (1 << 21) + 1;
char ibuf[SIZE], *iS, *iT, obuf[SIZE], *oS = obuf, *oT = oS + SIZE - 1, c,
                                       qu[55];
int f, qr;
inline void flush() {
  fwrite(obuf, 1, oS - obuf, stdout);
  oS = obuf;
}
inline void putc(char x) {
  *oS++ = x;
  if (oS == oT) flush();
}
template <class I>
inline void gi(I &x) {
  for (f = 1, c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, SIZE, stdin),
                              (iS == iT ? EOF : *iS++))
                            : *iS++);
       c < '0' || c > '9';
       c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, SIZE, stdin),
                       (iS == iT ? EOF : *iS++))
                     : *iS++))
    if (c == '-') f = -1;
  for (x = 0; c <= '9' && c >= '0';
       c = (iS == iT ? (iT = (iS = ibuf) + fread(ibuf, 1, SIZE, stdin),
                       (iS == iT ? EOF : *iS++))
                     : *iS++))
    x = (x << 1) + (x << 3) + (c & 15);
  x *= f;
}
template <class I>
inline void print(I x) {
  if (!x) putc('0');
  if (x < 0) putc('-'), x = -x;
  while (x) qu[++qr] = x % 10 + '0', x /= 10;
  while (qr) putc(qu[qr--]);
}
struct Flusher_ {
  ~Flusher_() { flush(); }
} io_flusher_;
}  // namespace io
using io ::gi;
using io ::print;
using io ::putc;
const int N = 2e5 + 5, inf = 2e9;
int cnt1[N], cnt2[N], cnt3[N], suf[N];
inline int min(register int x, register int y) { return x < y ? x : y; }
int main() {
  register int k1, k2, k3, n, i, x, ans;
  gi(k1);
  gi(k2);
  gi(k3);
  n = k1 + k2 + k3;
  while (k1--) gi(x), ++cnt1[x];
  while (k2--) gi(x), ++cnt2[x];
  while (k3--) gi(x), ++cnt3[x];
  for (i = 1; i <= n; ++i)
    cnt1[i] += cnt1[i - 1], cnt2[i] += cnt2[i - 1], cnt3[i] += cnt3[i - 1];
  suf[n + 1] = inf;
  for (i = n; i >= 0; --i) suf[i] = min(suf[i + 1], cnt3[i] - cnt2[i]);
  ans = inf;
  for (i = 0; i <= n; ++i)
    ans = min(ans, cnt2[i] + cnt3[i] - cnt1[i] + cnt1[n] + cnt2[n] - cnt3[i] +
                       suf[i]);
  printf("%d\n", ans);
  return 0;
}
