#include <bits/stdc++.h>
using namespace std;
double PI = 3.141592653589793238462643383279;
const double EPS = 1e-9;
const long long MOD = 1000000007;
const int inf = 1 << 30;
const long long linf = 1LL << 60;
int k[3];
int a[3][200000];
int sum[3][200001];
priority_queue<pair<int, int>, vector<pair<int, int>>> que;
int main() {
  for (int i = 0; i < (int)3; i++) scanf("%d", k + i);
  for (int i = 0; i < (int)3; i++)
    for (int j = 0; j < (int)k[i]; j++) scanf("%d", &a[i][j]);
  for (int i = 0; i < (int)3; i++)
    for (int j = 0; j < (int)k[i]; j++) a[i][j]--;
  for (int i = 0; i < (int)3; i++) sort(a[i], a[i] + k[i]);
  int n = 0;
  for (int i = 0; i < (int)3; i++) n += k[i];
  for (int i = 0; i < (int)3; i++) {
    for (int j = 0; j < (int)k[i]; j++) {
      sum[i][a[i][j]]++;
    }
    for (int j = 1; j <= n; j++) {
      sum[i][j] += sum[i][j - 1];
    }
  }
  int p1 = k[1], p2 = k[2];
  int acc = 0;
  que.push(pair<int, int>(0, n));
  while (p1 != 0 || p2 != 0) {
    if (p1 == 0) {
      acc++;
      que.push(pair<int, int>(acc, a[2][--p2]));
    } else if (p2 == 0) {
      acc--;
      que.push(pair<int, int>(acc, a[1][--p1]));
    } else {
      if (a[1][p1 - 1] > a[2][p2 - 1]) {
        acc--;
        que.push(pair<int, int>(acc, a[1][--p1]));
      } else {
        acc++;
        que.push(pair<int, int>(acc, a[2][--p2]));
      }
    }
  }
  int ans = inf;
  {
    int tmp = k[0];
    int pos = que.top().second;
    tmp += pos == 0 ? 0 : sum[2][pos - 1];
    tmp += k[1] - (pos == 0 ? 0 : sum[1][pos - 1]);
    ans = tmp;
  }
  int ig = 0;
  for (int i = 0; i < (int)k[0]; i++) {
    if (i == 0)
      ig += a[0][i];
    else
      ig += a[0][i] - a[0][i - 1] - 1;
    int ex = k[0] - i - 1 + ig;
    while (que.size() && que.top().second < a[0][i]) que.pop();
    int pos = que.top().second;
    ex += pos == 0
              ? 0
              : (sum[2][pos - 1] - (a[0][i] == 0 ? 0 : sum[2][a[0][i] - 1]));
    ex += k[1] - (pos == 0 ? 0 : sum[1][pos - 1]);
    ans = min(ans, ex);
  }
  printf("%d\n", ans);
}
