#include <bits/stdc++.h>
using namespace std;
int n, p, k;
short a[1001], b[1001];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> p >> k;
  int m, mx;
  memset(a, 0, (n + 1) * sizeof(short));
  memset(b, 0, (n + 1) * sizeof(short));
  cin >> m;
  for (int i = 0; i < m; i++) cin >> mx, a[mx] = 1;
  cin >> m;
  for (int i = 0; i < m; i++) cin >> mx, b[mx] = 1;
  short dp[n + 2][2 * 50 + 1][p + 1];
  for (int ip = n + 1; ip >= 1; ip--) {
    for (int iq = min(n + 1, ip + 50); iq >= max(1, ip - 50); iq--) {
      for (int j = 0; j <= p; j++) {
        if (ip == iq && ip == n + 1)
          dp[ip][iq - ip + 50][j] = 0;
        else if (iq == n + 1)
          dp[ip][iq - ip + 50][j] =
              iq - ip - 1 >= -50 ? dp[ip + 1][iq - ip - 1 + 50][j] : 0;
        else if (ip == n + 1)
          dp[ip][iq - ip + 50][j] =
              iq - ip + 1 <= 50 ? dp[ip][iq - ip + 1 + 50][j] : 0;
        else
          dp[ip][iq - ip + 50][j] =
              max(iq - ip + 1 <= 50 ? dp[ip][iq - ip + 1 + 50][j] : 0,
                  iq - ip - 1 >= -50 ? dp[ip + 1][iq - ip - 1 + 50][j] : 0);
      }
      if (a[ip] == 1 && iq >= ip) {
        int cnt = 0, rr = min(n, ip + k - 1);
        for (int r = ip; r <= rr; r++)
          if (r < iq)
            cnt += a[r];
          else
            cnt += a[r] && !b[r];
        for (int j = 1; j <= p; j++)
          if (cnt + dp[rr + 1][iq - rr - 1 + 50][j - 1] >
              dp[ip][iq - ip + 50][j])
            dp[ip][iq - ip + 50][j] = cnt + dp[rr + 1][iq - rr - 1 + 50][j - 1];
      }
      if (b[iq] == 1 && iq <= ip) {
        int cnt = 0, rr = min(n, iq + k - 1);
        for (int r = iq; r <= rr; r++)
          if (r < ip)
            cnt += b[r];
          else
            cnt += b[r] && !a[r];
        for (int j = 1; j <= p; j++)
          if (cnt + dp[ip][rr + 1 - ip + 50][j - 1] > dp[ip][iq - ip + 50][j])
            dp[ip][iq - ip + 50][j] = cnt + dp[ip][rr + 1 - ip + 50][j - 1];
      }
    }
  }
  int ans = 0;
  for (int ip = 1; ip <= n; ip++)
    for (int iq = min(n + 1, ip + 50); iq >= max(1, ip - 50); iq--)
      if (dp[ip][iq - ip + 50][p] > ans) ans = dp[ip][iq - ip + 50][p];
  cout << ans << endl;
  return 0;
}
