ans = 0 for i inrange(1, 2025): suma = sumb = 0 num = i while num: suma += num & 1 num >>= 1 num = i while num: sumb += num % 4 num //= 4 if suma == sumb: ans += 1 print(ans)
N = 1005 a = [[0for _ inrange(N)] for _ inrange(N)] vis = [[0for _ inrange(N)] for _ inrange(N)] d = [[1, 1], [1, -1], [-1, -1]] ans = 0
if __name__ == '__main__':
n, m = map(int, input().split()) for i inrange(n): a[i] = list(map(int, input().split())) for j inrange(m): # 以上边界为起点 for k inrange(2): f = [0for _ inrange(N)] x, y = 0, j f[a[x][y]] = 1 x += d[k][0] y += d[k][1] while0 <= x < n and0 <= y < m: ans += f[a[x][y]] f[a[x][y]] += 1 x += d[k][0] y += d[k][1] vis[x - d[0][k]][y - d[1][k]] += 1 for i inrange(1, n): # 以右边界为起点 for k inrange(1, 3): if vis[i][m - 1] == 1and k == 2: break f = [0for _ inrange(N)] x, y = i, m - 1 f[a[x][y]] = 1 x += d[k][0] y += d[k][1] while0 <= x < n and0 <= y < m: ans += f[a[x][y]] f[a[x][y]] += 1 x += d[k][0] y += d[k][1] for i inrange(min(n, m) - 1): # 以下边界为起点 k = 3 f = [0for _ inrange(N)] x, y = i, m - 1 f[a[x][y]] = 1 x += d[k][0] y += d[k][1] while0 <= x < n and0 <= y < m: ans += f[a[x][y]] f[a[x][y]] += 1 x += d[k][0] y += d[k][1] print(ans * 2)