#include
#include
#include
using namespace std;
typedef pair<int,pair<int,int>> custompair;
vector mergeksortedarray(vector<vector> arr)
{
vector result; // hold the result
priority_queue<custompair,vector,greater> pq;
for(int i=0;i<arr.size();i++)
{
pq.push({arr[i][0],{i,0}}); // insert 0th element in pq
custompair curr=pq.top();
int x=curr.second.first;
int y = curr.second.second;
result.push_back(curr.first);// insert element to result vector
if(y+1<arr[x].size())
{
pq.push({arr[x][y+1],{x,y+1}});
}
}
return result;
}
int main() {
int k,n;
cin>>k>>n;
vector<int,vector> arr={{2,3,4,5},{3,4,5,7},{1,3,6,9}};
/for(int i=0;i<k;i++)
{
for(int j=0;j<n;j++)
{
cin>>arr[i][j];
}
}/
vector output=mergeksortedarray(arr);
for(auto x:arr)
cout<<x<<" ";
return 0;
}