#include <iostream>
#include <algorithm>
using namespace std;
bool compareLastDigit(double a, double b) {
return (int)a%10 < (int)b%10;
}
bool compareFirstDigitDesyatkivoiChastini(double a, double b) {
return (int)(a*10)%10 < (int)(a*10)%10;
}
bool compareSymbols(char a, char b) {
return a < b;
}
int main(){
int n;
cin>>n;
double*arr=new double[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr, arr+n,compareLastDigit);
for (int i = 0; i < n; ++i) {
cout << arr[i] << " ";
}
double*arr1=new double[n];
for(int i=0;i<n;i++){
cin>>arr1[i];
}
cout<<endl;
sort(arr1, arr1+n, compareFirstDigitDesyatkivoiChastini);
for (int i = 0; i < n; ++i) {
cout << arr1[i] << " ";
}
int*arr2=new int[n];
for(int i=0;i<n;i++){
cin>>arr2[i];
}
cout<<endl;
sort(arr2, arr2+n, compareSymbols);
for (int i = 0; i < n; ++i) {
cout << arr2[i] << " ";
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAKI2luY2x1ZGUgPGFsZ29yaXRobT4gCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgY29tcGFyZUxhc3REaWdpdChkb3VibGUgYSwgZG91YmxlIGIpIHsKICAgIHJldHVybiAoaW50KWElMTAgPCAoaW50KWIlMTA7Cn0KYm9vbCBjb21wYXJlRmlyc3REaWdpdERlc3lhdGtpdm9pQ2hhc3RpbmkoZG91YmxlIGEsIGRvdWJsZSBiKSB7CiAgICByZXR1cm4gKGludCkoYSoxMCklMTAgPCAoaW50KShhKjEwKSUxMDsKfQpib29sIGNvbXBhcmVTeW1ib2xzKGNoYXIgYSwgY2hhciBiKSB7CiAgICByZXR1cm4gYSA8IGI7Cn0KaW50IG1haW4oKXsKCWludCBuOwoJY2luPj5uOwoJZG91YmxlKmFycj1uZXcgZG91YmxlW25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAJY2luPj5hcnJbaV07Cgl9CgkKCQoJc29ydChhcnIsIGFycituLGNvbXBhcmVMYXN0RGlnaXQpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgIAljb3V0IDw8IGFycltpXSA8PCAiICI7Cgl9Cglkb3VibGUqYXJyMT1uZXcgZG91YmxlW25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAJY2luPj5hcnIxW2ldOwoJfQoJY291dDw8ZW5kbDsKCQoJc29ydChhcnIxLCBhcnIxK24sIGNvbXBhcmVGaXJzdERpZ2l0RGVzeWF0a2l2b2lDaGFzdGluaSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgCWNvdXQgPDwgYXJyMVtpXSA8PCAiICI7Cgl9CglpbnQqYXJyMj1uZXcgaW50W25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAJY2luPj5hcnIyW2ldOwoJfQoJY291dDw8ZW5kbDsKCXNvcnQoYXJyMiwgYXJyMituLCBjb21wYXJlU3ltYm9scyk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgCWNvdXQgPDwgYXJyMltpXSA8PCAiICI7Cgl9CgoJCgp9