#include <bits/stdc++.h>
using namespace std;
struct Node {
  int value;
  int pos;
};
Node a[200005];
Node b[200005];
bool cmp(const Node &a, const Node &b) {
  if (a.value == b.value) {
    return a.pos > b.pos;
  } else {
    return a.value < b.value;
  }
}
bool cmp2(const Node &a, const Node &b) {
  if (a.value == b.value) {
    return a.pos < b.pos;
  } else {
    return a.value > b.value;
  }
}
int ans[200005];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i].value);
    a[i].pos = i;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &b[i].value);
    b[i].pos = i;
  }
  sort(a, a + n, cmp);
  sort(b, b + n, cmp2);
  for (int i = 0; i < n; i++) {
    ans[b[i].pos] = a[i].value;
  }
  cout << ans[0];
  for (int i = 1; i < n; i++) {
    cout << " " << ans[i];
  }
  return 0;
}
