import java.util.*;
class Solution {
public int[] solution(int rows, int columns, int[][] queries) {
int[] answer = new int[queries.length];
int[][] data = new int[rows][columns];
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
data[i][j] = i * columns + j + 1;
}
}
for (int i = 0; i < queries.length; i++){
int startR = queries[i][0] - 1;
int startC = queries[i][1] - 1;
int endR = queries[i][2] - 1;
int endC = queries[i][3] - 1;
int temp = 0;
int min = Integer.MAX_VALUE;
for (int j = startC; j <= endC; j++){
if (j == startC) {
temp = data[startR][j];
continue;
}
min = Math.min(temp, min);
int temp1 = data[startR][j];
data[startR][j] = temp;
temp = temp1;
}
for (int j = startR+1; j <= endR; j++){
min = Math.min(temp, min);
int temp1 = data[j][endC];
data[j][endC] = temp;
temp = temp1;
}
for (int j = endC-1; j >= startC; j--){
min = Math.min(temp, min);
int temp1 = data[endR][j];
data[endR][j] = temp;
temp = temp1;
}
for (int j = endR-1; j >= startR; j--){
min = Math.min(temp, min);
int temp1 = data[j][startC];
data[j][startC] = temp;
temp = temp1;
}
answer[i] = min;
}
return answer;
}
}