#include <algorithm>
#include <iostream>

using namespace std;
using tp = int32_t;
constexpr tp Hat_N = 603;

tp val[Hat_N][Hat_N], *v[Hat_N];

signed main() {
  tp n, mod, target = 1, f = 1;
  cin >> n >> mod;
  for (tp i = 1; i <= n; ++i) {
    v[i] = val[i];
    for (tp j = 1; j <= n; ++j) {
      cin >> v[i][j];
      v[i][j] %= mod;
    }
  }
  for (tp i = 1; i <= n; ++i) {
    for (tp j = i + 1; j <= n; ++j) {
      while (v[j][i]) {
        tp t = v[i][i] / v[j][i];
        for (tp k = i; k <= n && t; ++k) {
          v[i][k] = (v[i][k] - 1ll * t * v[j][k] % mod + mod) % mod;
        }
        swap(v[i], v[j]);
        f = ~f + 1;
      }
    }
    target = 1ll * target * v[i][i] % mod;
  }
  printf("%d
", (target * f + mod) % mod);
  return 0;
}

/*#################################################################
#.................................................................#
#.............#......#............Created.By.RBTree...............#
#............#.#....#.#...........................................#
#.............########............................................#
#............#........#..##############################...........#
#...........#..V........V..#..#........................#..#...#...#
#............#........#....#..........###..###..........#..#.#.#..#
#............#..X##X..#..#............#....#.#...........#..#...#.#
#...........#...N##N...#..#...........###..###..........#.........#
#.......MOO..#........#....#.#.#.#...................#.#..........#
#.............########.....#.#.#.##############.#.#..#.#..........#
#..........................#.#.#.#.............#.#.#.#.#..........#
#......#########...........#.#.#.#.................#.#.#..........#
#.....#.........#..........#.#.#.#.................#.#.#..........#
#.#.#.#G#R#A#S#S#.#.#......#.#.#.#.................#.#.#..........#
#.###################......#.#.#.#.................#.#.#..........#
#...........................#.#.#...................#.#...........#
#.................................................................#
#################################################################*/