public static void apply(int[][] input) {
        Set<Integer> zeroRows = new HashSet<>();
        Set<Integer> zeroCols = new HashSet<>();

        for (int i = 0; i < input.length; i++) {
            for (int j = 0; j < input[0].length; j++) {
                if (input[i][j] == 0) {
                    zeroRows.add(i);
                    zeroCols.add(j);
                }
            }
        }

        for (Integer row : zeroRows) {
            for (int j = 0; j < input[0].length; j++) {
                input[row][j] = 0;
            }
        }

        for (Integer col : zeroCols) {
            for (int i = 0; i < input.length; i++) {
                input[i][col] = 0;
            }
        }
    }