Easy C++ solution || priority queue || commented
\nclass Solution {\npublic:\n    int kthLargestValue(vector<vector<int>>& matrix, int k) {\n        \n        //modify the original matrix such that matrix[i][j
```\nclass Solution {\npublic:\n    int kthLargestValue(vector<vector<int>>& matrix, int k) {\n        \n        //modify the original matrix such that matrix[i][j] stores the xor of all the values \n        //upto the current i and j\n        \n        //also push the xor values in to min heap\n        //when the size of heap is greater than k pop the top element in pq\n        \n        //min heap\n        priority_queue<int,vector<int>,greater<int>> pq;\n        for(int i=0;i<matrix.size();i++)\n        {\n            int currXor=0;\n            for(int j=0;j<matrix[0].size();j++)\n            {\n                currXor^=matrix[i][j];\n                int top=(i) > 0 ? matrix[i-1][j] : 0;\n                matrix[i][j]=currXor^ top ;\n                pq.push(currXor^ top);\n                if(pq.size()>k)\n                    pq.pop();\n                \n            }\n        }\n        //pq top contains the kth largest value\n        return pq.top();\n        \n    }\n};\n```\n**Upvote if this helps you :)**
['C']