package main import ( "bufio" "fmt" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) func Scanner() string { sc.Scan() return sc.Text() } func main() { buf := make([]byte, 0) sc.Buffer(buf, 100000007) sc.Split(bufio.ScanWords) n, _ := strconv.Atoi(Scanner()) t := make([]int, n) s := make([]string, n) s1 := make([]rune, 300000) s2 := make([]rune, 200000) len, len2 := n, 0 for i := 0; i < n; i++ { t[i], _ = strconv.Atoi(Scanner()) s[i] = Scanner() if t[i] == 0 { s1[len] = []rune(s[i])[0] len++ } else { s2[len2] = []rune(s[i])[0] len2++ } } s1 = s1[:len] s2 = s2[:len2] fmt.Printf("%s\n", string(append(reverse(s2), s1...))) } func reverse(s []rune) []rune { for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 { s[i], s[j] = s[j], s[i] } return s }