package main import ( "fmt" "bufio" "os" ) var S, T []int var N, D, Diff int func main() { r := bufio.NewReader(os.Stdin) w := bufio.NewWriter(os.Stdout) defer w.Flush() fmt.Fscan(r, &N) var s, t string fmt.Fscan(r, &s, &t) var Q int fmt.Fscan(r, &Q) S = make([]int, N) T = make([]int, N) D, Diff = 0, 0 for i := 0; i < N; i++ { var cs, ct int cs = (int)(s[i]) - '0' ct = (int)(t[i]) - '0' S[i] = cs T[i] = ct if cs != ct { if D == 0 { if cs > ct { D = i + 1 } else { D = -i - 1 } } Diff++ } } for i := 0; i < Q; i++ { var c string fmt.Fscan(r, &c) var x, y int fmt.Fscan(r, &x, &y) review(c[0], x, y) if D > 0 { fmt.Fprintln(w, ">") } else if D < 0 { fmt.Fprintln(w, "<") } else { fmt.Fprintln(w, "=") } } } func Abs(x int) int { if x >= 0 { return x } else { return -x } } func review(c byte, x int, y int) { if c == 'S' { if S[x-1] == y { return } S[x-1] = y } else { if T[x-1] == y { return } T[x-1] = y } if D == 0 || x < Abs(D) { if S[x-1] > T[x-1] { D = x } else { D = -x } Diff++ } else if x == Abs(D) { D = 0 if S[x-1] == T[x-1] { Diff-- if Diff == 0 { return } } for i := x-1; i < N; i++ { if S[i] != T[i] { if S[i] > T[i] { D = i + 1 } else { D = -i - 1 } break } } } else { Diff++ } }