#include <bits/stdc++.h>
using namespace std;
using Pi = pair<int, int>;
using ll = long long;
const int INF = 1 << 28;
string to_string(string s) { return s; }
template <class T>
string to_string(vector<T> v) {
  string ret = "{";
  for (int i = 0; i < v.size() - 1; ++i) {
    ret += to_string(v[i]) + ",";
  }
  if (v.size() > 0) {
    ret += to_string(v.back());
  }
  ret += "}";
  return ret;
}
void debug() { cerr << endl; }
template <class Head, class... Tail>
void debug(Head head, Tail... tail) {
  cerr << to_string(head) << " ";
  debug(tail...);
}
void print() { cout << endl; }
template <class Head, class... Tail>
void print(Head head, Tail... tail) {
  cout << to_string(head);
  print(tail...);
}
void get() {}
template <class Head, class... Tail>
void get(Head& head, Tail&... tail) {
  cin >> head;
  get(tail...);
}
template <class T>
void getv(vector<T>& vec) {
  for (int i = 0; i < vec.size(); ++i) cin >> vec[i];
}
int main() {
  int N;
  get(N);
  vector<int> A(N);
  getv(A);
  map<int, int> list;
  for (int i = 0; i < (int)N; i++) {
    list[A[i]]++;
  }
  int mx = list.rbegin()->first, cnt = list.rbegin()->second;
  if (cnt > 1) {
    for (int i = 0; i < (int)N; i++) {
      print(mx);
    }
  } else {
    for (int i = 0; i < (int)N; i++) {
      vector<int> B(A);
      sort((B).begin(), (B).end(), greater<int>());
      if (A[i] != mx) {
        print(mx);
      } else {
        print(B[1]);
      }
    }
  }
  return 0;
}
