def solution(rows, columns, swipes):
answer = []
map = [[0]* columns for _ in range(rows)]
for row in range(rows):
for col in range(columns):
map[row][col] = row * columns + col + 1
for d,x1,y1,x2,y2 in swipes:
x1 -= 1; y1 -= 1; x2 -= 1; y2 -= 1
if d == 1:
tmp = []
for i in range(x2,x1,-1):
for j in range(y1,y2+1):
if i == x2:
tmp.append(map[i][j])
map[i][j] = map[i-1][j]
answer.append(sum(tmp))
for j in range(y1,y2+1):
map[x1][j] = tmp.pop(0)
elif d == 2:
tmp = []
for i in range(x1,x2):
for j in range(y1,y2+1):
if i == x1:
tmp.append(map[i][j])
map[i][j] = map[i+1][j]
answer.append(sum(tmp))
for j in range(y1,y2+1):
map[x2][j] = tmp.pop(0)
elif d == 3:
tmp = []
for j in range(y2,y1,-1):
for i in range(x1,x2+1):
if j == y2:
tmp.append(map[i][j])
map[i][j] = map[i][j-1]
answer.append(sum(tmp))
for i in range(x1,x2+1):
map[i][y1] = tmp.pop(0)
elif d == 4:
tmp = []
for j in range(y1,y2):
for i in range(x1,x2+1):
if j == y1:
tmp.append(map[i][j])
map[i][j] = map[i][j+1]
answer.append(sum(tmp))
for i in range(x1,x2+1):
map[i][y2] = tmp.pop(0)
return answer