import sys from itertools import combinations def main(): grid = [] for _ in range(5): grid.append(list(map(int, sys.stdin.readline().split()))) total = sum(sum(row) for row in grid) # Precompute all connected regions regions = [] # For each possible starting cell for i in range(5): for j in range(5): visited = [[False]*5 for _ in range(5)] q = [(i, j)] visited[i][j] = True sum_val = grid[i][j] cells = [(i, j)] for (x, y) in q: for dx, dy in [(-1,0),(1,0),(0,-1),(0,1)]: nx, ny = x + dx, y + dy if 0<=nx<5 and 0<=ny<5 and not visited[nx][ny]: visited[nx][ny] = True q.append((nx, ny)) sum_val += grid[nx][ny] cells.append((nx, ny)) regions.append((frozenset(cells), sum_val)) # Deduplicate regions and filter out subsets unique_regions = {} for r in regions: key = tuple(sorted(r[0])) if key not in unique_regions: unique_regions[key] = r[1] regions = [(set(k), v) for k, v in unique_regions.items()] # Now check all possible pairs of regions (A1, A2) min_diff = float('inf') len_regions = len(regions) for i in range(len_regions): A1_set, A1_sum = regions[i] for j in range(i + 1, len_regions): A2_set, A2_sum = regions[j] if A1_set.isdisjoint(A2_set): A_total = A1_sum + A2_sum B_total = total - A_total current_diff = abs(A_total - B_total) if current_diff < min_diff: min_diff = current_diff if min_diff == 0: print(0) return print(min_diff) if __name__ == "__main__": main()