#include<bits/stdc++.h>
using namespace std;
mt19937_64 rd(time(0));
int rand(int L, int R){
return L + rd() % (R - L + 1);
}
int n, arr[10000];
bool is_prime[10000];
void eratosthenes(){
memset(is_prime, 1, sizeof is_prime);
is_prime[0] = is_prime[1] = 0;
for(int i = 2; i*i < n; i++){
if(is_prime[i]){
for(int j = i*i; j < n; j += i) is_prime[j] = 0;
}
}
}
void prime_sort(){
for(int i = 0; i < n; i++){
if(is_prime[i]){
int times = i;
while(times > 0){
int j = rand(0, n - 1);
if(arr[min(i, j)] < arr[max(i, j)]) swap(arr[min(i, j)], arr[max(i, j)]);
times--;
}
}
}
}
bool isSorted(int* arr, int length){
for(int i = 1; i < length; i++){
if(arr[i - 1] < arr[i]) return 0;
}
return 1;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n;
for(int i = 0; i < n; i++) cin >> arr[i];
eratosthenes();
while(!isSorted(arr, n)){
prime_sort();
}
for(int i = 0; i < n; i++) cout << arr[i] << ' ';
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCm10MTk5MzdfNjQgcmQodGltZSgwKSk7CmludCByYW5kKGludCBMLCBpbnQgUil7CiAgICByZXR1cm4gTCArIHJkKCkgJSAoUiAtIEwgKyAxKTsKfQoKaW50IG4sIGFyclsxMDAwMF07CmJvb2wgaXNfcHJpbWVbMTAwMDBdOwoKdm9pZCBlcmF0b3N0aGVuZXMoKXsKICAgIG1lbXNldChpc19wcmltZSwgMSwgc2l6ZW9mIGlzX3ByaW1lKTsKICAgIGlzX3ByaW1lWzBdID0gaXNfcHJpbWVbMV0gPSAwOwoKICAgIGZvcihpbnQgaSA9IDI7IGkqaSA8IG47IGkrKyl7CiAgICAgICAgaWYoaXNfcHJpbWVbaV0pewogICAgICAgICAgICBmb3IoaW50IGogPSBpKmk7IGogPCBuOyBqICs9IGkpIGlzX3ByaW1lW2pdID0gMDsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgcHJpbWVfc29ydCgpewogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgaWYoaXNfcHJpbWVbaV0pewogICAgICAgICAgICBpbnQgdGltZXMgPSBpOwoKICAgICAgICAgICAgd2hpbGUodGltZXMgPiAwKXsKICAgICAgICAgICAgICAgIGludCBqID0gcmFuZCgwLCBuIC0gMSk7CiAgICAgICAgICAgICAgICBpZihhcnJbbWluKGksIGopXSA8IGFyclttYXgoaSwgaildKSBzd2FwKGFyclttaW4oaSwgaildLCBhcnJbbWF4KGksIGopXSk7CiAgICAgICAgICAgICAgICB0aW1lcy0tOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgpib29sIGlzU29ydGVkKGludCogYXJyLCBpbnQgbGVuZ3RoKXsKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBsZW5ndGg7IGkrKyl7CiAgICAgICAgaWYoYXJyW2kgLSAxXSA8IGFycltpXSkgcmV0dXJuIDA7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgY2luID4+IG47CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSBjaW4gPj4gYXJyW2ldOwoKICAgIGVyYXRvc3RoZW5lcygpOwoKICAgIHdoaWxlKCFpc1NvcnRlZChhcnIsIG4pKXsKICAgICAgICBwcmltZV9zb3J0KCk7CiAgICB9CgogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgY291dCA8PCBhcnJbaV0gPDwgJyAnOwoKICAgIHJldHVybiAwOwp9Cg==