// SIGMA BOY hihihihihihihi
#define se second
#define fi first
#define pb push_back
#define pob pop_back
#define bitebi __builtin_popcountll
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
typedef pair<int,int> pii;
const ll Mod = 1e9+7;
const ll Maxn = 1e6+69;
const ll Maxm = 1e3;
const ll oo = 1e18;
const int inf = 1e9;
int n;
pll l[Maxn],d[Maxn];
vector<pll> res ;
bool CheckSqinCir ( ll l , ll d )
{
return 2*l*l<=d*d;
}
bool Check ( int k )
{
for (int i = 1 ; i <= k ; ++i) if(!CheckSqinCir(l[i].fi,d[n-k+i].fi)) return false;
return true;
}
void Print ( int k )
{
for (int i = 1 ; i <= k ; ++i) res.pb({l[i].se,d[n-k+i].se});
for (int i = k+1; i <= n ; ++i) res.pb({l[i].se,d[i-k].se});
sort(res.begin(),res.end());
for (auto x: res)
cout << x.se << ' ' ;
}
void Do()
{
cin >> n ;
for (int i = 1 ; i <= n ; ++i)
{
cin >> l[i].fi;
l[i].se = i ;
}
for (int i = 1 ; i <= n ; ++i)
{
cin >> d[i].fi;
d[i].se = i;
}
sort(l+1,l+1+n);
sort(d+1,d+1+n);
int L = 0 , R = n ;
while(L<=R)
{
int mid = (L+R)/2;
if(Check(mid)) L = mid+1;
else R = mid-1;
}
Print(R);
}
signed main ()
{
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define task "test"
if(fopen(task".inp", "r")){
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
int ntest=1;
while(ntest--) Do();
cerr<<"\nTime elapsed: "<<1000*clock()/CLOCKS_PER_SEC<<"ms\n";
}
Ly8gU0lHTUEgQk9ZIGhpaGloaWhpaGloaWhpCgojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgYml0ZWJpIF9fYnVpbHRpbl9wb3Bjb3VudGxsCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZCA7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsbDsKdHlwZWRlZiBwYWlyPGludCxpbnQ+IHBpaTsKY29uc3QgbGwgTW9kID0gMWU5Kzc7CmNvbnN0IGxsIE1heG4gPSAxZTYrNjk7CmNvbnN0IGxsIE1heG0gPSAxZTM7CmNvbnN0IGxsIG9vID0gMWUxODsKY29uc3QgaW50IGluZiA9IDFlOTsKCmludCBuOwpwbGwgbFtNYXhuXSxkW01heG5dOwp2ZWN0b3I8cGxsPiByZXMgOwoKYm9vbCBDaGVja1NxaW5DaXIgKCBsbCBsICwgbGwgZCApCnsKICAgIHJldHVybiAyKmwqbDw9ZCpkOwp9Cgpib29sIENoZWNrICggaW50IGsgKQp7CiAgICBmb3IgKGludCBpID0gMSA7IGkgPD0gayA7ICsraSkgaWYoIUNoZWNrU3FpbkNpcihsW2ldLmZpLGRbbi1rK2ldLmZpKSkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7Cn0KCnZvaWQgUHJpbnQgKCBpbnQgayApCnsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBrIDsgKytpKSByZXMucGIoe2xbaV0uc2UsZFtuLWsraV0uc2V9KTsKICAgIGZvciAoaW50IGkgPSBrKzE7IGkgPD0gbiA7ICsraSkgcmVzLnBiKHtsW2ldLnNlLGRbaS1rXS5zZX0pOwogICAgc29ydChyZXMuYmVnaW4oKSxyZXMuZW5kKCkpOwogICAgZm9yIChhdXRvIHg6IHJlcykKICAgICAgICBjb3V0IDw8IHguc2UgPDwgJyAnIDsKfQoKdm9pZCBEbygpCnsKICAgIGNpbiA+PiBuIDsKICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKQogICAgewogICAgICAgIGNpbiA+PiBsW2ldLmZpOwogICAgICAgIGxbaV0uc2UgPSBpIDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxIDsgaSA8PSBuIDsgKytpKQogICAgewogICAgICAgIGNpbiA+PiBkW2ldLmZpOwogICAgICAgIGRbaV0uc2UgPSBpOwogICAgfQogICAgc29ydChsKzEsbCsxK24pOwogICAgc29ydChkKzEsZCsxK24pOwogICAgaW50IEwgPSAwICwgUiA9IG4gOwogICAgd2hpbGUoTDw9UikKICAgIHsKICAgICAgICBpbnQgbWlkID0gKEwrUikvMjsKICAgICAgICBpZihDaGVjayhtaWQpKSBMID0gbWlkKzE7CiAgICAgICAgZWxzZSBSID0gbWlkLTE7CiAgICB9CiAgICBQcmludChSKTsKfQoKc2lnbmVkIG1haW4gKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKSwgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiNkZWZpbmUgdGFzayAidGVzdCIKICAgIGlmKGZvcGVuKHRhc2siLmlucCIsICJyIikpewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgbnRlc3Q9MTsKICAgIHdoaWxlKG50ZXN0LS0pIERvKCk7CiAgICBjZXJyPDwiXG5UaW1lIGVsYXBzZWQ6ICI8PDEwMDAqY2xvY2soKS9DTE9DS1NfUEVSX1NFQzw8Im1zXG4iOwp9Cgo=