public P028A() {
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();
        int m = sc.nextInt();
        for (int i = 0; i < N; i++) {
            int x = sc.nextInt();
            int y = sc.nextInt();
            nails.add(new Coord(x, y));
        }
        for (int i = 0; i < m; i++) {
            int length = sc.nextInt();
            if (!rods.containsKey(length)) {
                rods.put(length, new ArrayDeque<Integer>());
            }
            rods.get(length).add(i+1);
        }
   
        boolean solved = false;
        for (int i = 0; i < 2; i++) {
            if (checkPossible(i)) {
                System.out.println("YES");
                for (int rod : getSolution(i)) {
                    System.out.printf("%d ", rod);
                }
                System.out.println();
                solved = true;
                break;
            }
        }
        
        if (!solved) {
            System.out.println("NO");
        }
    }