#include<bits/stdc++.h>
using namespace std;
class Solution{
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n){
        int idx_num1 = 0,idx_num2 = 0;
        int constraint_length = m + n + 5;
        int idx_rlt = 0;
        int rlt[210] = {0};
        
        while(idx_num1 < m && idx_num2 < n){
            int val = min(nums1[idx_num1], nums2[idx_num2]);
            rlt[idx_rlt++] = val;
            if(val == nums1[idx_num1]){
                idx_num1++;
                continue;
            }else{
                idx_num2++;
            }
        }
        while(idx_num1 < m){
            rlt[idx_rlt++] = nums1[idx_num1++];
        }
        while(idx_num2 < n){
            rlt[idx_rlt++] = nums2[idx_num2++];
        }
        for(int i = 0 ; i < idx_rlt;i++){
            cout<<rlt[i]<<' ';
        }
        cout<<endl;
    }
};
int main(){
    Solution sol;
    int m,n;
    vector<int>ex1_num1={1,2,3,0,0,0};
    vector<int>ex1_num2={2,5,6};
    m = 3; n = 3;
    sol.merge(ex1_num1,m,ex1_num2,n);

    vector<int>ex2_num1={1};
    vector<int>ex2_num2={};
    m = 1; n = 0;
    sol.merge(ex2_num1,m,ex2_num2,n);

    vector<int>ex3_num1={0};
    vector<int>ex3_num2={1};
    m = 0; n = 1;
    sol.merge(ex3_num1,m,ex3_num2,n);

    return 0;
}