#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000100;
int n;
char s[MAXN];
int balance[MAXN];
int pref[MAXN];
int pos[MAXN];
int sa[MAXN], rnk[MAXN], cnt[MAXN], tmp[MAXN];
int ranks;
void build() {
  for (int i = 0; i < n; ++i) ++cnt[(int)s[i]];
  for (int i = 1; i < 256; ++i) cnt[i] += cnt[i - 1];
  for (int i = 0; i < n; ++i) sa[--cnt[(int)s[i]]] = i;
  rnk[sa[0]] = 0;
  ranks = 1;
  for (int i = 1; i < n; ++i) {
    if (s[sa[i]] != s[sa[i - 1]])
      rnk[sa[i]] = ranks++;
    else
      rnk[sa[i]] = rnk[sa[i - 1]];
  }
  memset(cnt, 0, sizeof(int) * 256);
  for (int step = 1; step < n; step <<= 1) {
    for (int i = 0; i < n; ++i) {
      tmp[i] = sa[i] - step;
      if (tmp[i] < 0) tmp[i] += n;
    }
    for (int i = 0; i < n; ++i) ++cnt[rnk[i]];
    for (int i = 1; i < ranks; ++i) cnt[i] += cnt[i - 1];
    for (int i = n - 1; i > -1; --i) sa[--cnt[rnk[tmp[i]]]] = tmp[i];
    memset(cnt, 0, sizeof(int) * ranks);
    tmp[sa[0]] = 0;
    ranks = 1;
    for (int i = 1; i < n; ++i) {
      if (rnk[sa[i]] != rnk[sa[i - 1]] ||
          rnk[(sa[i] + step) % n] != rnk[(sa[i - 1] + step) % n])
        tmp[sa[i]] = ranks++;
      else
        tmp[sa[i]] = tmp[sa[i - 1]];
    }
    memcpy(rnk, tmp, sizeof(int) * n);
  }
}
int main() {
  scanf("%s", s);
  n = strlen(s);
  build();
  for (int i = 0; i < n; ++i) pos[sa[i]] = i;
  for (int i = 0; i < n; ++i) {
    balance[i] = s[i] == '(' ? 1 : -1;
    pref[i] = balance[i];
    if (i) {
      balance[i] += balance[i - 1];
      pref[i] = min(pref[i - 1], balance[i]);
    }
  }
  int suff = 1e8;
  int bestShift = -1;
  for (int i = n - 1; i > -1; --i) {
    int tmp = min(suff - balance[i], balance[n - 1] - balance[i] + pref[i]);
    if (tmp >= min(0, balance[n - 1]))
      if (bestShift == -1 || pos[bestShift] > pos[(i + 1) % n])
        bestShift = (i + 1) % n;
    suff = min(suff, balance[i]);
  }
  for (int i = 0; i < -balance[n - 1]; ++i) putchar('(');
  for (int i = 0; i < n; ++i) {
    putchar(s[(bestShift + i) % n]);
  }
  for (int i = 0; i < balance[n - 1]; ++i) putchar(')');
  puts("");
  return 0;
}
