#include <bits/stdc++.h>
using namespace std;
bool fast_greater(const string& s, const vector<long long>& h,
                  const vector<long long>& p, int i1, int i2, int n) {
  if (s[i1] != s[i2]) return s[i1] > s[i2];
  int lo{0};
  int up{n - 1};
  while (up - lo > 1) {
    int mid{(lo + up) / 2};
    if ((h[i1 + mid] - h[i1] * p[mid] % 1234567890 + 1234567890) % 1234567890 ==
        (h[i2 + mid] - h[i2] * p[mid] % 1234567890 + 1234567890) % 1234567890)
      lo = mid;
    else
      up = mid;
  }
  if ((h[i1 + up] - h[i1] * p[up] % 1234567890 + 1234567890) % 1234567890 ==
      (h[i2 + up] - h[i2] * p[up] % 1234567890 + 1234567890) % 1234567890)
    return s[i1 + up + 1] > s[i2 + up + 1];
  else
    return s[i1 + lo + 1] > s[i2 + lo + 1];
}
int main() {
  string s;
  cin >> s;
  int n = s.size();
  vector<int> minPre(n), minSuf(n), bal(n);
  transform((s).begin(), (s).end(), bal.begin(),
            [](char ch) { return ch == '(' ? 1 : -1; });
  partial_sum((bal).begin(), (bal).end(), bal.begin());
  partial_sum((bal).begin(), (bal).end(), minPre.begin(),
              [](int x, int y) { return x < y ? x : y; });
  partial_sum((bal).rbegin(), (bal).rend(), minSuf.rbegin(),
              [](int x, int y) { return x < y ? x : y; });
  s += s;
  vector<long long> h(2 * n);
  vector<long long> p(2 * n);
  h[0] = 0;
  p[0] = 1;
  for (int i = 1; i < 2 * n; ++i) {
    h[i] = (h[i - 1] * 1000007 + s[i]) % 1234567890;
    p[i] = p[i - 1] * 1000007 % 1234567890;
  }
  int I{-1};
  int totBal{bal[n - 1]};
  for (int i = 0; i < n; ++i) {
    int minRot{i == 0 ? minSuf[0]
                      : min(minSuf[i] - bal[i - 1],
                            minPre[i - 1] + totBal - bal[i - 1])};
    if (totBal >= 0 && minRot >= 0 || totBal < 0 && minRot - totBal >= 0)
      if (I == -1 || fast_greater(s, h, p, I, i, n)) I = i;
  }
  string ans = (totBal < 0 ? string(-totBal, '(') : string()) +
               string(s.begin() + I, s.begin() + I + n) +
               (totBal > 0 ? string(totBal, ')') : string());
  cout << ans << endl;
}
