#include <bits/stdc++.h>
using namespace std;
long long int M = 1000000007;
long long int i, j;
bool sortbysecdesc(const pair<int, int> &a, const pair<int, int> &b) {
  return a.second > b.second;
}
long long int mod(long long a, long long b) { return (a % b + b) % b; }
long long int isPrime(long long int n) {
  if (n <= 3) return (1);
  if (n % 2 == 0 || n % 3 == 0) return (0);
  for (i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return (0);
  return (1);
}
long long int smallestDivisor(long long int n) {
  if (n % 2 == 0) return 2;
  for (i = 3; i * i <= n; i += 2) {
    if (n % i == 0) return i;
  }
  return n;
}
long long int countDivisors(long long int n) {
  long long int cnt = 0;
  for (i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        cnt++;
      else
        cnt = cnt + 2;
    }
  }
  return cnt;
}
long long maxPrimeFactors(long long n) {
  long long maxPrime = -1;
  while (n % 2 == 0) {
    maxPrime = 2;
    n >>= 1;
  }
  for (i = 3; i <= sqrt(n); i += 2) {
    while (n % i == 0) {
      maxPrime = i;
      n = n / i;
    }
  }
  if (n > 2) maxPrime = n;
  return maxPrime;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(NULL), cout.tie(NULL);
  long long int tt = 1;
  while (tt--) {
    long long int n;
    cin >> n;
    long long int a[n], sum = 0;
    for (i = 0; i < n; i++) {
      cin >> a[i];
      sum += a[i];
    }
    long long int num = *max_element(a, a + n);
    long long int x = ceil((double)sum / (n - 1));
    cout << max(num, x) << "\n";
  }
}
