class Solution {
public int kthLargestValue(int[][] matrix, int k) {
int n=matrix.length,m=matrix[0].length;
int[][] matval = new int[n][m];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
matval[i][j] = matrix[i][j];
if(i-1>=0)
matval[i][j] ^= matval[i-1][j];
if(j-1>=0)
matval[i][j] ^= matval[i][j-1];
if(i-1>=0 && j-1>=0)
matval[i][j] ^= matval[i-1][j-1];
}
int[] nums = new int[n*m];
for(int i=0,count=0;i<n;i++)
{
for(int j=0;j<m;j++,count++)
{
nums[count] = matval[i][j];
}
}
Arrays.parallelSort(nums);
return nums[n*m-k];
}
}