#include<bits/stdc++.h>
using namespace std;
struct drawfix
{
int play,pos;
};
bool cmp(drawfix a,drawfix b)
{
return a.play>b.play;
}
int main()
{
ios_base::sync_with_stdio(0);
vector<pair<int,int> > vec;
int n,val,p,huge=numeric_limits<int>::max(),diff,c=0;
cin>>n;
drawfix siru[n+1];
bool played[n+1];
int nava[n+1];
for(int i=1;i<=n;i++)
{
played[i]=false;
cin>>siru[i].play;
siru[i].pos=i;
}
for(int i=1;i<=n;i++)
cin>>nava[i];
sort(siru+1,siru+n+1,cmp);
for(int x=1;x<=n;x++)
{
diff=huge;
val=siru[x].play;
for(int i=1;i<=n;i++)
{
if(!played[i])
{
if(val>nava[i] && val-nava[i]<diff)
{
diff=val-nava[i];
p=i;
}
}
}
if(diff==huge)
{
for(int i=1;i<=n;i++)
{
if(!played[i])
{
p=i;
break;
}
}
}
else
c++;
played[p]=true;
vec.push_back(make_pair(siru[x].pos,p));
}
sort(vec.begin(),vec.end());
cout<<c<<endl;
for(int i=0;i<n;i++)
cout<<vec[i].second<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IGRyYXdmaXgKewoJaW50IHBsYXkscG9zOwp9Owpib29sIGNtcChkcmF3Zml4IGEsZHJhd2ZpeCBiKQp7CglyZXR1cm4gYS5wbGF5PmIucGxheTsKfQppbnQgbWFpbigpCnsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Cgl2ZWN0b3I8cGFpcjxpbnQsaW50PiA+IHZlYzsKCWludCBuLHZhbCxwLGh1Z2U9bnVtZXJpY19saW1pdHM8aW50Pjo6bWF4KCksZGlmZixjPTA7CgljaW4+Pm47CglkcmF3Zml4IHNpcnVbbisxXTsKCWJvb2wgcGxheWVkW24rMV07CglpbnQgbmF2YVtuKzFdOwoJZm9yKGludCBpPTE7aTw9bjtpKyspCgl7CgkJcGxheWVkW2ldPWZhbHNlOwoJCWNpbj4+c2lydVtpXS5wbGF5OwoJCXNpcnVbaV0ucG9zPWk7Cgl9Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCWNpbj4+bmF2YVtpXTsKCXNvcnQoc2lydSsxLHNpcnUrbisxLGNtcCk7Cglmb3IoaW50IHg9MTt4PD1uO3grKykKCXsKCQlkaWZmPWh1Z2U7CgkJdmFsPXNpcnVbeF0ucGxheTsKCQlmb3IoaW50IGk9MTtpPD1uO2krKykKCQl7CgkJCWlmKCFwbGF5ZWRbaV0pCgkJCXsKCQkJCWlmKHZhbD5uYXZhW2ldICYmIHZhbC1uYXZhW2ldPGRpZmYpCgkJCQl7CgkJCQkJZGlmZj12YWwtbmF2YVtpXTsKCQkJCQlwPWk7CgkJCQl9CgkJCX0KCQl9CgkJaWYoZGlmZj09aHVnZSkKCQl7CgkJCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJCQl7CgkJCQlpZighcGxheWVkW2ldKQoJCQkJewoJCQkJCXA9aTsKCQkJCQlicmVhazsKCQkJCX0KCQkJfQoJCX0KCQllbHNlCgkJYysrOwoJCXBsYXllZFtwXT10cnVlOwoJCXZlYy5wdXNoX2JhY2sobWFrZV9wYWlyKHNpcnVbeF0ucG9zLHApKTsKCX0KCXNvcnQodmVjLmJlZ2luKCksdmVjLmVuZCgpKTsKCWNvdXQ8PGM8PGVuZGw7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJY291dDw8dmVjW2ldLnNlY29uZDw8ZW5kbDsKfQ==