#include <bits/stdc++.h>
using namespace std;
int n;
int a[110],c[110];
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<n;i++) cin>>c[i];
int i=0;
bool flag = true;
for(;i<n-1;i++){
if(c[i]>c[i+1]){//排到了i 之后检查i后面的元素是否相同
break;
}
}
for(int j=i+1;j<n;j++){
if(a[j]!=c[j]){//不是插入排序
flag = false;
break;
}
}
if(flag){
sort(c,c+i+2);
cout << "Insertion Sort" << '\n';
int count = 0;
for(int i=0;i<n;i++){
if(count) cout << " ";
cout << c[i];
count++;
}
}else{
int k = 2;
int circle = 1;
while(circle){
int flag = 1;//两个是否相等
for(int j=0;j<n;j++){
if(a[j] != c[j]){
flag = 0;
break;
}
}
if(flag == 1){
circle = 0;
}
for(int i=0;i<n/k;i++){//i是第几轮
sort(a+k*i,a+k*(i+1));
}
sort(a+k*(n/k),a+n);//最后剩下的几个
k = k * 2;
}
//打印
cout << "Merge Sort" << '\n';
int count = 0;
for(int i=0;i<n;i++){
if(count) cout << " ";
cout << a[i];
count++;
}
}
return 0;
}