description: Monocarp is playing a computer game. Now he wants to complete the first level of this game.
  
  A level is a rectangular grid of 2 rows and n columns. Monocarp controls a character, which starts in cell (1, 1) — at the intersection of the 1-st row and the 1-st column.
  
  Monocarp's character can move from one cell to another in one step if the cells are adjacent by side and/or corner. Formally, it is possible to move from cell (x_1, y_1) to cell (x_2, y_2) in one step if |x_1 - x_2| ≤ 1 and |y_1 - y_2| ≤ 1. Obviously, it is prohibited to go outside the grid.
  
  There are traps in some cells. If Monocarp's character finds himself in such a cell, he dies, and the game ends.
  
  To complete a level, Monocarp's character should reach cell (2, n) — at the intersection of row 2 and column n.
  
  Help Monocarp determine if it is possible to complete the level.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 100) — the number of test cases. Then the test cases follow. Each test case consists of three lines.
  
  The first line contains a single integer n (3 ≤ n ≤ 100) — the number of columns.
  
  The next two lines describe the level. The i-th of these lines describes the i-th line of the level — the line consists of the characters '0' and '1'. The character '0' corresponds to a safe cell, the character '1' corresponds to a trap cell.
  
  Additional constraint on the input: cells (1, 1) and (2, n) are safe.
  
  Output
  
  For each test case, output YES if it is possible to complete the level, and NO otherwise.
  
  Example
  
  Input
  
  
  4
  3
  000
  000
  4
  0011
  1100
  4
  0111
  1110
  6
  010101
  101010
  
  
  Output
  
  
  YES
  YES
  NO
  YES
  
  Note
  
  Consider the example from the statement.
  
  In the first test case, one of the possible paths is (1, 1) → (2, 2) → (2, 3).
  
  In the second test case, one of the possible paths is (1, 1) → (1, 2) → (2, 3) → (2, 4).
  
  In the fourth test case, one of the possible paths is (1, 1) → (2, 2) → (1, 3) → (2, 4) → (1, 5) → (2, 6).
solution: import java.io.*;
  import java.util.*;
  
  public class Main {
  
      public static FastScanner fs = new FastScanner();
      public static Scanner sc = new Scanner(System.in);
      public static PrintWriter out = new PrintWriter(System.out);
      public static int inf = 1000000007;
  
      /////// For printing elements in array
  
      public static void print(long[] arr) {
          for (long x : arr) {
              System.out.print(x + " ");
          }
          System.out.println();
      }
  
      /////// For freq of elements in array
  
      public static long[] freq(long[] freq_arr, long[] arr) {
          for (long j : arr) {
              freq_arr[(int) j]++;
          }
  
          return freq_arr;
      }
  
      /////// For sum elements in array
  
      public static int sum(int[] arr) {
  
          int sum = 0;
  
          for (int j : arr) {
              sum += j;
          }
          return sum;
      }
  
      /////// For storing elements in array 1D
  
      public static long[] scan1d(long[] arr) {
          for (int i = 0; i < arr.length; i++) {
              arr[i] = sc.nextLong();
          }
  
          return arr;
      }
  
      /////// For storing elements in array 2D
  
      public static long[][] scan2d(long[][] arr) {
          for (int i = 0; i < arr.length; i++) {
              arr[i][0] = sc.nextLong();
              arr[i][1] = sc.nextLong();
          }
  
          return arr;
      }
  
      /////// For copying elements in array
  
      public static long[] copy_arr(long[] arr, long[] arr1) {
          for (int i = 0; i < arr.length; i++) {
              arr1[i] = arr[i];
          }
  
          return arr;
      }
  
      /////// For GCD
  
      public static long gcd(long a, long b) {
          if (b == 0)
              return a;
          return gcd(b, a % b);
      }
  
      //////// Forprime
  
      public static boolean isPrime(long n) {
          if (n < 2)
              return false;
          if (n == 2 || n == 3)
              return true;
          if (n % 2 == 0 || n % 3 == 0)
              return false;
          long sqrtN = (long) Math.sqrt(n) + 1;
          for (long i = 6L; i <= sqrtN; i += 6) {
              if (n % (i - 1) == 0 || n % (i + 1) == 0)
                  return false;
          }
          return true;
      }
  
      //////Using array as Set
      public static boolean[] arr_set(boolean[] arr, int n) {
          for (int i = 0; i < n; i++) {
              int x = sc.nextInt();
              arr[x] = true;
          }
  
          return arr;
      }
  
      static class FastScanner {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
          StringTokenizer st = new StringTokenizer("");
  
          String next() {
              while (!st.hasMoreTokens())
                  try {
                      st = new StringTokenizer(br.readLine());
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              return st.nextToken();
          }
  
          int nextInt() {
              return Integer.parseInt(next());
          }
  
          int[] readArray(int n) {
              int[] a = new int[n];
              for (int i = 0; i < n; i++) a[i] = nextInt();
              return a;
          }
  
          long nextLong() {
              return Long.parseLong(next());
          }
      }
  
  
      public static long fact(int n) {
  
          long fact = 1;
          for (int i = 1; i <= n; i++) {
              fact *= i;
              fact %= 2 * inf;
          }
          return fact;
      }
  
      //Arrays.sort(arr, Comparator.comparingInt(a -> a[0]));
  
      public static void main(String[] args) {
  
          long t=sc.nextLong();
  
          while (t-->0){
              long n=sc.nextLong();
  
              String s1=sc.next();
              String s2=sc.next();
  
              int flag=0;
  
              if(s1.charAt(0)=='1' || s2.charAt((int) (n-1))=='1'){
                  out.println("NO");
              }else {
                  for(int i=0;i<n-1;i++){
                      if(s1.charAt(i+1)=='1' && s2.charAt(i+1)=='1'){
                          flag=-1;
                          break;
                      }
                  }
  
                  if(flag==-1){
                      out.println("NO");
                  }else {
                      out.println("YES");
                  }
              }
  
          }
  
          out.flush();
  
      }
  
  }