编辑代码

const rl = require("readline").createInterface({ input: process.stdin });
const iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
  const [row, tate] = (await readline()).split(" ").map(Number);
  const matrix = [];
  for (let i = 0; i < row; i++) {
    matrix.push((await readline()).split(" ").map(Number));
  }
  const k = Number(await readline());
  const nums = (await readline()).split(" ").map(Number);
  const containVal = (arr, matrix) => {
    const map = new Map();
    for (let i = 0; i < arr.length; i++) {
      map.set(arr[i], (map.get(arr[i]) || 0) + 1);
    }
    for (let i = 0; i < matrix.length; i++) {
      for (let j = 0; j < matrix[i].length; j++) {
        if (map.get(matrix[i][j]) > 0) {
          map.set(matrix[i][j], map.get(matrix[i][j]) - 1);
        }
        if (map.get(matrix[i][j]) == 0) {
          map.delete(matrix[i][j]);
        }
      }
    }
    return map.size == 0;
  };
  const findVal = () => {
    const curMatrix = Array.from({ length: row }, () => []);
    for (let i = 0; i < tate; i++) {
      for (let j = 0; j < row; j++) {
        curMatrix[j].push(matrix[j][i]);
      }
      if (containVal(nums, curMatrix)) {
        return i + 1;
      }
    }
    return -1;
  };
  console.log(findVal());
})();