Language: C++

#include<bits/stdc++.h>
typedef long long int;
typedef unsigned long long ull;
using namespace std;
#define pb push_back
int dy[]={0, 0, 1, -1, 1, 1, -1, -1};
int dx[]={1, -1, 0, 0, 1, -1, -1, 1};

#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
#define mp make_pair
#define fi first
#define INF 1000000000
#define sc second
ll n,m;

char b[600][600];

ll dp[251][(1 << 20) + 1];

bool oe[600];

ll dfs(ll i) {
	if(i == n) {
		bool f = true;
		REP(j,m) {
			if(oe[j] == 1) {
				f = false;
			}
		}
		if(f) {
			return 0;
		}
		return -INF;
	}

	ll a = dfs(i + 1);

	char save[600];

	REP(j,m) {
		save[j] = oe[j];
	}

	REP(j,m) {
		oe[j] = (oe[j] xor b[i][j]);
	}

	ll b = dfs(i + 1) + 1;

	REP(j,m) {
		oe[j] = save[j];
	}

	return max(a,b);
}

ll dfs(ll i ,ll S) {
	if(dp[i][S] >= 0)
		return dp[i][S];
	if(i == n) {
		if(S == 0) {
			return 0;
		}
		return -INF;
	}

	ll a = dfs(i + 1,S);

	ll S2 = 0;
	RREP(j,m) {
		S2 *= 2;
		S2 += (((S >> j) & 1) xor b[i][j]);
	}
	//cout << S << " " << S2 << endl;
	ll b = dfs(i + 1,S2) + 1;
	return dp[i][S] = max(a,b);
}

int main(){
	while(true) {
		cin >> n >> m;
		if(n == 0)
			break;
		REP(i,n) 
			cin >> b[i];

		REP(i,n) {
			REP(j,m) {
				b[i][j] -= '0';
			}
		}
		if(n < 25) {
			REP(i,m) {
				oe[i] = 0;
			}
			cout << dfs(0) << endl;
		}else {
			REP(i,n + 1) {
				REP(j,(1 << m) + 1) 
					dp[i][j] = -INF;
			}
			cout << dfs(0,0) << endl;
		}
	}
	return 0;
}



Compiler output:
a.cc:2:19: error: declaration does not declare anything [-fpermissive]
    2 | typedef long long int;
      |                   ^~~
a.cc:17:1: error: 'll' does not name a type; did you mean 'ull'?
   17 | ll n,m;
      | ^~
      | ull
a.cc:21:1: error: 'll' does not name a type; did you mean 'ull'?
   21 | ll dp[251][(1 << 20) + 1];
      | ^~
      | ull
a.cc:25:1: error: 'll' does not name a type; did you mean 'ull'?
   25 | ll dfs(ll i) {
      | ^~
      | ull
a.cc:60:1: error: 'll' does not name a type; did you mean 'ull'?
   60 | ll dfs(ll i ,ll S) {
      | ^~
      | ull
a.cc: In function 'int main()':
a.cc:84:24: error: 'n' was not declared in this scope; did you mean 'yn'?
   84 |                 cin >> n >> m;
      |                        ^
      |                        yn
a.cc:84:29: error: 'm' was not declared in this scope; did you mean 'tm'?
   84 |                 cin >> n >> m;
      |                             ^
      |                             tm
a.cc:99:33: error: 'dfs' was not declared in this scope; did you mean 'ffs'?
   99 |                         cout << dfs(0) << endl;
      |                                 ^~~
      |                                 ffs
a.cc:103:41: error: 'dp' was not declared in this scope; did you mean 'dy'?
  103 |                                         dp[i][j] = -INF;
      |                                         ^~
      |                                         dy
a.cc:105:33: error: 'dfs' was not declared in this scope; did you mean 'ffs'?
  105 |                         cout << dfs(0,0) << endl;
      |                                 ^~~
      |                                 ffs