#include<bits/stdc++.h>
#define N 105
using namespace std;
void printArray(vector arr, int size)
{
for (int i=0; i < size; i++)
cout << arr[i] << " ";
}
// } Driver Code Ends
//User function Template for C++
class Solution
{
typedef pair<int,pair<int,int>>node;
public:
//Function to merge k sorted arrays.
vector<int> mergeKArrays(vector<vector<int>> arr, int K)
{
vector<int>result;
priority_queue<node,vector<node>,greater<node>>pq;
for(int i=0;i<arr.size();i++){
pq.push({arr[i][0],{i,0}});
}
while(!pq.empty()){
node current=pq.top();
pq.pop();
int element=current.first;
int x=current.second.first;
int y=current.second.second;
result.push_back(element);
if(y+1<arr[x].size()){
pq.push({arr[x][y+1],{x,y+1}});
}
}
return result;
}
};