#include "stdio.h"
#include "string.h"
int p[105],num[105];
int dp[100005];
int v;
void CompletePacc(int cost,int weight)
{
int i;
for(i=cost;i<=v;i++)
if(dp[i]<dp[i-cost]+weight)
{
dp[i]=dp[i-cost]+weight;
}
}
void ZeroOnePacc(int cost,int weight)
{
int i;
for(i=v;i>=cost;i--)
if(dp[i]<dp[i-cost]+weight)
{
dp[i]=dp[i-cost]+weight;
}
}
void MultiPacc(int cost,int weight,int amount)
{
int k;
if( cost*amount > v )
{
CompletePacc(cost,weight);
return;
}
k=1;
while( k < amount )
{
ZeroOnePacc(k*cost,k*weight);
amount-=k;
k*=2;
}
ZeroOnePacc(amount*cost,amount*weight);
}
int main()
{
int n,i;
while( scanf("%d%d",&n,&v)==2 && ( n||v ))
{
memset(dp,0,sizeof(dp));
for( i=1;i<=n;i++ )
{
scanf("%d",&p[i]);
}
for( i=1;i<=n;i++ )
{
scanf("%d",&num[i]);
}
for( i=1;i<=n;i++ )
{
MultiPacc( p[i],p[i],num[i] );
}
int count=0;
for( i=1;i<=v;i++ )
if( dp[i]==i )
count++;
printf("%d\n",count);
}
return 0;
}