#include <bits/stdc++.h>
using namespace std;
int get_left_max(size_t &index, vector<int> &a_vec);
int get_right_max(size_t &index, vector<int> &a_vec);
int main() {
  int n;
  cin >> n;
  vector<int> a_vec(n, 0);
  vector<int> lmax_vec(n, 0);
  vector<int> rmax_vec(n, 0);
  for (size_t i = 0; i < a_vec.size(); ++i) {
    cin >> a_vec[i];
  }
  for (size_t i = 0; i < a_vec.size(); ++i) {
    lmax_vec[i] = get_left_max(i, a_vec);
    rmax_vec[i] = get_right_max(i, a_vec);
    int d_out = max(lmax_vec[i], rmax_vec[i]);
    cout << d_out << endl;
  }
  return 0;
}
int get_left_max(size_t &index, vector<int> &a_vec) {
  int res = 0;
  for (size_t i = 0; i < index; ++i) {
    res = max(res, a_vec[i]);
  }
  return res;
}
int get_right_max(size_t &index, vector<int> &a_vec) {
  int res = 0;
  for (size_t i = index + 1; i < a_vec.size(); ++i) {
    res = max(res, a_vec[i]);
  }
  return res;
}
