#include <bits/stdc++.h>
const int N = 333333, INF = 1000 * 1000 * 1000;
using namespace std;
int a[4][N], sz[4], d[N];
int t[4 * N + 1], col[4 * N + 1];
void pull(int v, int tl, int tr) {
  t[v] = min(t[2 * v] + col[2 * v], t[2 * v + 1] + col[2 * v + 1]);
}
void push(int v) {
  col[2 * v] += col[v];
  col[2 * v + 1] += col[v];
  col[v] = 0;
}
void add(int v, int tl, int tr, int L, int R, int x) {
  if (tl == L && tr == R) {
    col[v] += x;
    return;
  }
  push(v);
  int tm = (tl + tr) >> 1;
  if (R <= tm) {
    add(2 * v, tl, tm, L, R, x);
  } else if (L > tm) {
    add(2 * v + 1, tm + 1, tr, L, R, x);
  } else {
    add(2 * v, tl, tm, L, tm, x);
    add(2 * v + 1, tm + 1, tr, tm + 1, R, x);
  }
  pull(v, tl, tr);
}
int getMin(int v, int tl, int tr, int L, int R) {
  if (tl == L && tr == R) {
    return t[v] + col[v];
  }
  push(v);
  int tm = (tl + tr) >> 1;
  int ans = 0;
  if (R <= tm) {
    ans = getMin(2 * v, tl, tm, L, R);
  } else if (L > tm) {
    ans = getMin(2 * v + 1, tm + 1, tr, L, R);
  } else {
    ans = min(getMin(2 * v, tl, tm, L, tm),
              getMin(2 * v + 1, tm + 1, tr, tm + 1, R));
  }
  pull(v, tl, tr);
  return ans;
}
int fnd(int id, int l, int r) {
  return (upper_bound(a[id] + 1, a[id] + sz[id] + 1, r) -
          lower_bound(a[id] + 1, a[id] + sz[id] + 1, l));
}
void go(int i, int j, int r) {
  int res = min(sz[j], sz[i]) + 1;
  int pos1 = sz[i] + 1, pos2 = sz[j] + 1;
  int q = -1;
  for (int i2 = r; i2 >= 1; i2--) {
    int x = d[i2 + 1];
    if (a[i][pos1 - 1] == i2) {
      pos1--;
    }
    if (a[j][pos2 - 1] == i2) {
      pos2--;
      if (pos2 < sz[j]) {
        add(1, 1, sz[j], pos2 + 1, sz[j], 1);
      }
      if (pos1 <= sz[i]) {
        q = (upper_bound(a[i] + pos1, a[i] + sz[i] + 1, i2) - a[i]);
        int tot = sz[i] - q + 1;
        add(1, 1, sz[j], pos2, pos2, tot);
      }
      x = min(sz[i] - pos1 + 1, sz[j] - pos2 + 1);
      int re = getMin(1, 1, sz[j], pos2, pos2), ff = INF;
      if (pos2 + 1 <= sz[j]) {
        ff = getMin(1, 1, sz[j], pos2 + 1, sz[j]);
      }
      x = min(x, min(re, ff));
    }
    d[i2] = x;
  }
}
int main() {
  int k1, k2, k3;
  scanf("%d%d%d", &k1, &k2, &k3);
  int n = k1 + k2 + k3;
  sz[1] = k1;
  sz[2] = k2;
  sz[3] = k3;
  for (int i = 1; i <= k1; i++) {
    scanf("%d", &a[1][i]);
  }
  for (int i = 1; i <= k2; i++) {
    scanf("%d", &a[2][i]);
  }
  for (int i = 1; i <= k3; i++) {
    scanf("%d", &a[3][i]);
  }
  sort(a[1] + 1, a[1] + k1 + 1);
  sort(a[2] + 1, a[2] + k2 + 1);
  sort(a[3] + 1, a[3] + k3 + 1);
  fill(d + 1, d + n + 3, INF);
  int ans = n - max(k1, max(k2, k3));
  int cnt = 0;
  int tot = 0;
  for (int i = 1; i < 3; i++) {
    for (int j = i + 1; j <= 3; j++) {
      for (int k = 1; k < n; k++) {
        tot = k - fnd(i, 1, k) + n - (k + 1) + 1 - fnd(j, k + 1, n);
        ans = min(ans, tot);
      }
    }
  }
  go(2, 3, n);
  for (int i = n - 2; i >= 1; i--) {
    tot = i - fnd(1, 1, i) + d[i + 1] + fnd(1, i + 1, INF);
    ans = min(ans, tot);
  }
  printf("%d", ans);
}
