#include using namespace std; using ll = long long; #define all(p) p.begin(),p.end() #define rep(i,a,b) for(int i=(int)a;i<(int)b;i++) int main(){ int N,H,X; cin>>N>>H>>X; set s; auto f=[&]()->vector{ int n; cin>>n; vector p(n); rep(i,0,n){ cin>>p[i]; rep(k,1,X) if(p[i]-k>=0&&p[i]-k+X<=N) s.insert(p[i]-k); } return p; }; auto p=f(),q=f(); H=min(H,(int)p.size()+(int)q.size()); vector order; for(auto x:s) order.push_back(x); int L=order.size(); vector dp(L+1,vector(H+1)); rep(i,0,L){ int val=0; int to=i; while(to!=L&&order[i]+X>order[to]) to++; for(auto x:p) if(order[i]