```go
package main
import (
"fmt"
"strings"
)
func main() {
var n int
var k int64
fmt.Scan(&n, &k)
maxK := int64(n) * int64(n-1) / 2
if k > maxK {
fmt.Println("Impossible")
return
}
d := make([]int, n)
d[0] = 0
sum := int64(0)
for i := 1; i < n; i++ {
rem := k - sum
val := d[i-1] + 1
if int64(val) > rem {
val = int(rem)
}
d[i] = val
sum += int64(val)
}
var sb strings.Builder
sb.Grow(2 * n)
curDepth := 0
for i := 0; i < n; i++ {
need := d[i]
for curDepth > need {
sb.WriteByte(')')
curDepth--
}
sb.WriteByte('(')
curDepth++
}
for curDepth > 0 {
sb.WriteByte(')')
curDepth--
}
fmt.Println(sb.String())
}
```