#include using namespace std; #include using namespace atcoder; using mint = atcoder::static_modint<998244353>; // using mint = atcoder::static_modint<1000000007>; using ld = long double; using ll = long long; #define mp(a,b) make_pair(a,b) #define rep(i,s,n) for(int i=s; i<(int)n; i++) const vector dx{1,0,-1,0},dy{0,1,0,-1}; int main(){ int n,f;cin >> n >> f; vector> a(n,vector(3)); rep(i,0,3)rep(j,0,n)cin >> a[j][i]; int maxsize=0; rep(i,0,n){ sort(a[i].begin(),a[i].end()); maxsize+=a[i][2]-a[i][0]; } vector dp(maxsize+1); dp[0]=true; int ans=1; int m=0; rep(i,0,n){ int x=a[i][1]-a[i][0],y=a[i][2]-a[i][0]; m+=y; for(int j=m; j>=0; j--)if(!dp[j]){ if(j-x>=0 && dp[j-x])dp[j]=true; if(j-y>=0 && dp[j-y])dp[j]=true; if(dp[j])ans++; } cout << ans << "\n"; } }