#include <bits/stdc++.h>
using namespace std;
static auto speedup = [](){ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);return nullptr;}();
const int maxn = 3e5 + 7;
int n,a[maxn];
int getMiniNotationOn2(){
int i = 0,j = 1,k = 0;
while(k <= n && i < n && j < n){
if(a[(i + k) % n] == a[(j + k) % n]){
k++;
}else {
if(a[(i + k) % n] > a[(j + k) % n])i++;
else j++;
k = 0;
if(i == j)i++;
}
}
i = min(i,j);
return i;
}
int getMiniNotationOn(){
int i = 0,j = 1,k = 0;
while(k <= n && i < n && j < n){
if(a[(i + k) % n] == a[(j + k) % n]){
k++;
}else {
a[(i + k) % n] > a[(j + k) % n]?i = i + k + 1:j = j + k + 1;
if(i == j)i++;
k = 0;
}
}
i = min(i,j);
return i;
}
void slove(){
cin >> n;
for(int i = 0;i < n;i++){
cin >> a[i];
}
int first = 0;
first = getMiniNotationOn2();
for(int i = 0;i < n;i++){
cout << a[(i + first) % n] << " ";
}
cout << endl;
}
int main(){
slove();
return 0;
}