N×M 격자의 모든 칸에 서로 다른 수가 하나씩 들어 있다. 격자에 남아 있는 칸 중에서 위, 아래, 왼쪽, 오른쪽으로 맞닿은 칸끼리 하나의 XOR 그룹을 이루고, 그룹의 값은 그 그룹에 속한 수를 모두 XOR한 값이다. 중간 칸이 비어 있으면 연결이 끊기므로 한 격자에 XOR 그룹이 여러 개 생길 수 있다. 격자의 점수는 모든 XOR 그룹의 값을 더한 수다.
처음에는 모든 칸이 남아 있다. 여기서 남은 수 중 가장 작은 수가 적힌 칸을 하나씩 지워 나간다. 한 칸을 지울 때마다 그룹의 구성이 바뀌고 점수도 달라진다. 한 칸도 지우지 않은 처음 격자와 한 칸씩 지운 뒤의 모든 격자를 통틀어, 점수의 최댓값을 구하여라.
입력
첫째 줄에 N과 M이 주어진다. (1≤N,M≤1,000)
다음 N개 줄에는 격자의 i번째 줄에 있는 수 M개가 공백으로 구분되어 주어진다. 각 수는 0 이상 1,000,000 이하의 정수이고, 격자에 있는 수는 모두 다르다.