#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
int a[120],c[120];
int dp[100000+100];
int main()
{
int n,m;
int i,j,k;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
scanf("%d",&c[i]);
}
memset(dp,-1,sizeof(dp));
dp[0]=1;
for(i=0;i<n;i++)
{
for(j=1;j<=c[i];j*=2)
{
int temp=j*a[i];
for(k=m;k>=temp;k--)
{
if(dp[k-temp]!=-1) dp[k]=1;
}
c[i]-=j;
}
int temp=c[i]*a[i];
for(k=m;k>=temp;k--)
{
if(dp[k-temp]!=-1) dp[k]=1;
}
}
int ans=0;
for(i=1;i<=m;i++)
{
if(dp[i]==1) ans++;
}
printf("%d
",ans);
}
return 0;
}