#include using namespace std; using ll = long long; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); using bs = bitset<2560>; int N, M, K; cin >> N >> M >> K; vector S(M); for (int i = 0; i < M; i++) { cin >> S[i]; } int rank = 0; for (int j = 0; j < N; j++) { for (int i = rank; i < M; i++) { if (S[i][j]) { if (i != rank) swap(S[i], S[rank]); break; } } if (!S[rank][j]) continue; for (int i = 0; i < M; i++) if (i != rank && S[i][j]) S[i] ^= S[rank]; rank++; if (rank == M) break; } int L = N - rank; ll ans = 1; while (L--) ans *= 2, ans %= K; cout << ans << "\n"; }