import std.algorithm;
import std.array;
import std.ascii;
import std.container;
import std.conv;
import std.math;
import std.numeric;
import std.range;
import std.stdio;
import std.string;
import std.typecons;

void log(A...)(A arg) {
    stderr.writeln(arg);
}
int size(T)(in T s) {
    return cast(int)s.length;
}

void main() {
    int A; readf("%d\n", &A);
    int x = 1;
    int k;
    for (k = 1; x < A; x += k + 1, k++) {}
    int d = x - A;
    char[] ans;
    for (int l = k; d >= 0 && l > 0; l--) {
        int m = (l == k ? k - 1 : l);
        if (d - m < 0) {
            foreach (i; 0 .. l) ans ~= ')';
            foreach (i; 0 .. l) ans ~= '(';
            swap(ans[2 * (l - k) + l - d], ans[2 * (l - k) + l]);
            break;
        } else {
            d -= m;
            ans ~= (l == k ? ")(" : "()");
        }
    }
    writeln(ans);
}