
You are given a positive integer k . You are also given:
a 2D integer array rowConditions of size n where rowConditions[i] = [above _i , below _i ] , and
a 2D integer array colConditions of size m where colConditions[i] = [left _i , right _i ] .
The two arrays contain integers from 1 to k .
You have to build a k x k matrix that contains each of the numbers from 1 to k exactly once . The remaining cells should have the value 0 .
The matrix should also satisfy the following conditions:
The number above _i should appear in a row that is strictly above the row at which the number below _i appears for all i from 0 to n - 1 .
The number left _i should appear in a column that is strictly left of the column at which the number right _i appears for all i from 0 to m - 1 .
Return any matrix that satisfies the conditions . If no answer exists, return an empty matrix.
2 <= k <= 4001 <= rowConditions.length, colConditions.length <= 10 ^4rowConditions[i].length == colConditions[i].length == 21 <= above _i , below _i , left _i , right _i <= kabove _i != below _ileft _i != right _i