For problem statement at 1000-1999/1100-1199/1170-1179/1179/problemC.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1170-1179/1179/verifierC.go ends with All 100 tests passed can you fix the verifier? ```go
package main
import (
"io"
"os"
"sort"
"strconv"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
p := 0
nextInt := func() int {
for p < len(data) && (data[p] < '0' || data[p] > '9') {
p++
}
v := 0
for p < len(data) && data[p] >= '0' && data[p] <= '9' {
v = v*10 + int(data[p]-'0')
p++
}
return v
}
n := nextInt()
m := nextInt()
a := make([]int, n)
b := make([]int, m)
coords := make([]int, 0, n+m)
for i := 0; i < n; i++ {
x := nextInt()
a[i] = x
coords = append(coords, x)
}
for i := 0; i < m; i++ {
x := nextInt()
b[i] = x
coords = append(coords, x)
}
q := nextInt()
t := make([]int, q)
id := make([]int, q)
v := make([]int, q)
for i := 0; i < q; i++ {
t[i] = nextInt()
id[i] = nextInt() - 1
v[i] = nextInt()
coords = append(coords, v[i])
}
sort.Ints(coords)
k := 0
for _, x := range coords {
if k == 0 || coords[k-1] != x {
coords[k] = x
k++
}
}
vals := coords[:k]
toRev := func(x int) int {
return k - 1 - sort.SearchInts(vals, x)
}
for i := 0; i < n; i++ {
a[i] = toRev(a[i])
}
for i := 0; i < m; i++ {
b[i] = toRev(b[i])
}
for i := 0; i < q; i++ {
v[i] = toRev(v[i])
}
size := 1
for size < k {
size <<= 1
}
sum := make([]int32, size<<1)
mx := make([]int32, size<<1)
for i := 0; i < n; i++ {
sum[size+a[i]]++
}
for i := 0; i < m; i++ {
sum[size+b[i]]--
}
for i := size; i < size+k; i++ {
mx[i] = sum[i]
}
for i := size - 1; i > 0; i-- {
l := i << 1
sum[i] = sum[l] + sum[l|1]
x := sum[l] + mx[l|1]
if mx[l] > x {
mx[i] = mx[l]
} else {
mx[i] = x
}
}
add := func(pos int, d int32) {
i := size + pos
sum[i] += d
mx[i] = sum[i]
for i >>= 1; i > 0; i >>= 1 {
l := i << 1
sum[i] = sum[l] + sum[l|1]
x := sum[l] + mx[l|1]
if mx[l] > x {
mx[i] = mx[l]
} else {
mx[i] = x
}
}
}
firstPositive := func() int {
if mx[1] <= 0 {
return -1
}
i := 1
var acc int32
for i < size {
l := i << 1
if mx[l]+acc > 0 {
i = l
} else {
acc += sum[l]
i = l | 1
}
}
return i - size
}
out := make([]byte, 0, q*8)
for i := 0; i < q; i++ {
if t[i] == 1 {
old := a[id[i]]
nw := v[i]
if old != nw {
add(old, -1)
add(nw, 1)
a[id[i]] = nw
}
} else {
old := b[id[i]]
nw := v[i]
if old != nw {
add(old, 1)
add(nw, -1)
b[id[i]] = nw
}
}
pos := firstPositive()
if pos == -1 {
out = append(out, '-', '1', '\n')
} else {
ans := vals[k-1-pos]
out = strconv.AppendInt(out, int64(ans), 10)
out = append(out, '\n')
}
}
os.Stdout.Write(out)
}
```