import sys import bisect def solve(): input = sys.stdin.read data = input().split() if not data: return Q = int(data[0]) idx = 1 out = [] for _ in range(Q): S = data[idx] T = data[idx+1] idx += 2 if sorted(S) != sorted(T): out.append("No") continue s_g = [i for i, c in enumerate(S) if c == 'g'] s_d = [i for i, c in enumerate(S) if c == 'd'] s_o = [i for i, c in enumerate(S) if c == 'o'] t_g = [i for i, c in enumerate(T) if c == 'g'] t_d = [i for i, c in enumerate(T) if c == 'd'] possible = True for i, g_pos in enumerate(s_g): g_dest = t_g[i] for j, d_pos in enumerate(s_d): d_dest = t_d[j] if g_pos < d_pos: l = bisect.bisect_right(s_o, g_pos) r = bisect.bisect_left(s_o, d_pos) o_count = r - l if o_count >= 2: if g_dest > d_dest: possible = False break if not possible: break if possible: out.append("Yes") else: out.append("No") print('\n'.join(out)) if __name__ == '__main__': solve()