private static void packAndPrint(List<Box> boxes) {
        Box best = Packing.packBest(boxes);

        Vec3d normDim = best.v.norm();

        System.out.printf(Locale.ENGLISH, "%.2f %.2f %.2f\n", normDim.x(), normDim.y(), normDim.z());

        List<Box.Location> locations = new ArrayList<>();
        best.locate(0, 0, 0, vec(0, 0, 0), locations);

        Collections.sort(locations, (b1, b2) -> Integer.compare(b1.id, b2.id));

        for (Box.Location l : locations) {
            System.out.print(l.id);
            System.out.print(' ');
            System.out.println(l.location);
        }
    }