#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N, M, K;
cin >> N >> M >> K;
vector<int> T(N);
for (int i = 0; i < N; i++) cin >> T[i];
vector<int> D(K);
int D_max = 0;
for (int i = 0; i < K; i++) {
cin >> D[i];
D_max = max(D_max, D[i]);
}
int MAX_SUM = M * 1000; // 최대 합
bitset<1000001> dp[2]; // dp[cur][sum] = 만들 수 있음
dp[0][0] = 1;
for (int t : T) {
for (int m = M; m >= 1; m--) {
dp[0] |= (dp[0] << t);
}
}
bitset<1000001> possible = dp[0];
// D를 set으로
vector<bool> isD(D_max + 1, false);
for (int d : D) isD[d] = true;
int ans = 0;
// 가능한 F1 후보
for (int F1 = 0; F1 + D_max <= MAX_SUM; F1++) {
bool ok = true;
// D에 포함된 값 확인
for (int d : D) {
if (!possible[F1 + d]) {
ok = false;
break;
}
}
if (!ok) continue;
// D에 없는 값 확인 (0~D_max 범위)
for (int d = 0; d <= D_max; d++) {
if (isD[d]) continue;
if (possible[F1 + d]) {
ok = false;
break;
}
}
if (ok) ans++;
}
cout << ans << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgaW50IE4sIE0sIEs7CiAgICBjaW4gPj4gTiA+PiBNID4+IEs7CgogICAgdmVjdG9yPGludD4gVChOKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSBjaW4gPj4gVFtpXTsKCiAgICB2ZWN0b3I8aW50PiBEKEspOwogICAgaW50IERfbWF4ID0gMDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgSzsgaSsrKSB7CiAgICAgICAgY2luID4+IERbaV07CiAgICAgICAgRF9tYXggPSBtYXgoRF9tYXgsIERbaV0pOwogICAgfQoKICAgIGludCBNQVhfU1VNID0gTSAqIDEwMDA7IC8vIOy1nOuMgCDtlakKICAgIGJpdHNldDwxMDAwMDAxPiBkcFsyXTsgLy8gZHBbY3VyXVtzdW1dID0g66eM65OkIOyImCDsnojsnYwKICAgIGRwWzBdWzBdID0gMTsKCiAgICBmb3IgKGludCB0IDogVCkgewogICAgICAgIGZvciAoaW50IG0gPSBNOyBtID49IDE7IG0tLSkgewogICAgICAgICAgICBkcFswXSB8PSAoZHBbMF0gPDwgdCk7CiAgICAgICAgfQogICAgfQoKICAgIGJpdHNldDwxMDAwMDAxPiBwb3NzaWJsZSA9IGRwWzBdOwoKICAgIC8vIETrpbwgc2V07Jy866GcCiAgICB2ZWN0b3I8Ym9vbD4gaXNEKERfbWF4ICsgMSwgZmFsc2UpOwogICAgZm9yIChpbnQgZCA6IEQpIGlzRFtkXSA9IHRydWU7CgogICAgaW50IGFucyA9IDA7CgogICAgLy8g6rCA64ql7ZWcIEYxIO2bhOuztAogICAgZm9yIChpbnQgRjEgPSAwOyBGMSArIERfbWF4IDw9IE1BWF9TVU07IEYxKyspIHsKICAgICAgICBib29sIG9rID0gdHJ1ZTsKCiAgICAgICAgLy8gROyXkCDtj6ztlajrkJwg6rCSIO2ZleyduAogICAgICAgIGZvciAoaW50IGQgOiBEKSB7CiAgICAgICAgICAgIGlmICghcG9zc2libGVbRjEgKyBkXSkgewogICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghb2spIGNvbnRpbnVlOwoKICAgICAgICAvLyBE7JeQIOyXhuuKlCDqsJIg7ZmV7J24ICgwfkRfbWF4IOuylOychCkKICAgICAgICBmb3IgKGludCBkID0gMDsgZCA8PSBEX21heDsgZCsrKSB7CiAgICAgICAgICAgIGlmIChpc0RbZF0pIGNvbnRpbnVlOwogICAgICAgICAgICBpZiAocG9zc2libGVbRjEgKyBkXSkgewogICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAob2spIGFucysrOwogICAgfQoKICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7Cn0=