


import java.util.*;
public class Main {
static Scanner sc=new Scanner(System.in);
static int n,cnt[]=new int[12],vis[]=new int[12];
static double x[]=new double[12];
static double y[]=new double[12];
static double r[]=new double[12];
static boolean ok=false;
static double dis(double x1,double y1,double x2,double y2) {
return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
static boolean ck(){
for (int i=1;i<=n;++i) {
for (int j=i+1;j<=n;++j) {
double dc=dis(x[i], y[i], x[j], y[j]);
if (dc>Math.abs(r[cnt[i]]-r[cnt[j]])&&dc<r[cnt[i]]+r[cnt[j]]) return false;
}
}
return true;
}
static void dfs(int x){
if (x>n) {
if (ck()) {
ok=true;
for (int i=1;i<=n;++i)
System.out.printf("%d ",cnt[i]);
System.exit(0);
}
return;
}
for (int i=1;i<=n;++i) {
if (vis[i]>0) continue;
int now=cnt[x];
vis[i]=1;
cnt[x]=i;
dfs(x+1);
vis[i]=0;
cnt[x]=now;
}
}
public static void main(String[] args) {
n=sc.nextInt();
for (int i=1;i<=n;++i) {
x[i]=sc.nextDouble();
y[i]=sc.nextDouble();
}
for (int i=1;i<=n;++i) r[i]=sc.nextDouble();
for (int i=1;i<=n;++i) cnt[i]=i;
dfs(1);
System.out.println("-1");
}
}