#include<bits/stdc++.h>
using namespace std;
int n,m,maxx,ans,t;
struct node{
int ai,bi;
}a[200010];
bool cmp(node x,node y){
return x.ai>y.ai;
}
int main(){
cin>>n>>m;
t=m;
for(int i=1;i<=n;i++){
cin>>a[i].ai;
}
for(int i=1;i<=n;i++){
cin>>a[i].bi;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++){
ans=0;
m=t;
for(int j=1;j<=n;j++){
if(a[i].ai-a[j].ai<=a[j].bi&&a[i].ai-a[j].ai>=0){
if(a[i].ai-a[j].ai<=m){
m-=(a[i].ai-a[j].ai);
ans++;
break;
}else {
break;
}
}else {
break;
}
}
if(ans>=maxx){
maxx=ans;
}
}
cout<<maxx;
return 0;
}