#include <bits/stdc++.h> using namespace std; #define For(i, a, b) for(int i = (a); i < (b); i++) #define rep(i, n) For(i, 0, n) #define rFor(i, a, b) for(int i = (a); i >= (b); i--) #define ALL(v) (v).begin(), (v).end() #define rALL(v) (v).rbegin(), (v).rend() using lint = long long; using ld = long double; int INF = 2000000000; lint LINF = 1000000000000000000; struct SetupIo { SetupIo() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); } } setupio; vector<int> merge(vector<int> &a, vector<int> &b) { int n = a.size(), m = b.size(); vector<int> c; int i = 0, j = 0; while (i < n || j < m) { if (i == n) { c.emplace_back(b[j++]); } else if (j == m) { c.emplace_back(a[i++]); } else { if (a[i] <= b[j]) { c.emplace_back(a[i++]); } else { c.emplace_back(b[j++]); } } } return c; } int main() { int n, f; cin >> n >> f; vector<int> a(n), b(n), c(n); rep(i, n) { cin >> a[i]; } rep(i, n) { cin >> b[i]; } rep(i, n) { cin >> c[i]; } vector<int> vec; vec = {0}; rep(i, n) { vector<int> va, vb, vc; for (int x : vec) { va.emplace_back(x + a[i]); vb.emplace_back(x + b[i]); vc.emplace_back(x + c[i]); } vec = merge(vec, va); vec.erase(unique(ALL(vec)), vec.end()); vec = merge(vec, vb); vec.erase(unique(ALL(vec)), vec.end()); vec = merge(vec, vc); vec.erase(unique(ALL(vec)), vec.end()); cout << vec.size() << "\n"; } }