Problem: This is the easy version of the problem. The difference between the versions is the constraint on n and the required number of operations. You can make hacks only if all versions of the problem are solved.

There are two binary strings a and b of length n (a binary string is a string consisting of symbols 0 and 1). In an operation, you select a prefix of a, and simultaneously invert the bits in the prefix (0 changes to 1 and 1 changes to 0) and reverse the order of the bits in the prefix.

For example, if a=001011 and you select the prefix of length 3, it becomes 011011. Then if you select the entire string, it becomes 001001.

Your task is to transform the string a into b in at most 3n operations. It can be proved that it is always possible.

Input

The first line contains a single integer t (1≤ t≤ 1000) — the number of test cases. Next 3t lines contain descriptions of test cases.

The first line of each test case contains a single integer n (1≤ n≤ 1000) — the length of the binary strings.

The next two lines contain two binary strings a and b of length n.

It is guaranteed that the sum of n across all test cases does not exceed 1000.

Output

For each test case, output an integer k (0≤ k≤ 3n), followed by k integers p_1,…,p_k (1≤ p_i≤ n). Here k is the number of operations you use and p_i is the length of the prefix you flip in the i-th operation.

Example

Input


5
2
01
10
5
01011
11100
2
01
01
10
0110011011
1000110100
1
0
1


Output


3 1 2 1
6 5 2 5 3 1 2
0
9 4 1 2 10 4 1 2 1 5
1 1

Note

In the first test case, we have 01→ 11→ 00→ 10.

In the second test case, we have 01011→ 00101→ 11101→ 01000→ 10100→ 00100→ 11100.

In the third test case, the strings are already the same. Another solution is to flip the prefix of length 2, which will leave a unchanged.

Solution (in JAVA):

Solution:
import java.io.*;
import java.util.*;
import java.math.*;
 
public class Education_89_2
{
	InputReader in;PrintWriter pw;

	void solve(int test) throws Exception
	{
		int n = ni();
		char arr[] = nln().toCharArray();
		char brr[] = nln().toCharArray();
		ArrayList<Integer> list = new ArrayList<Integer>();

		for(int i=n-1;i>=0;i--)
		{
			if(arr[i]==brr[i])
			{
				continue;
			}
			if(brr[i]!=arr[0])
			{
				list.add(i+1);

				for(int j=0;j<(i+1)/2;j++)
				{		
					char temp = arr[j];
					arr[j] = arr[i-j];
					arr[i-j] = temp;

					if(arr[j]=='1') arr[j]='0';
					else if(arr[j]=='0') arr[j]='1';

					if(arr[i-j]=='1') arr[i-j]='0';
					else if(arr[i-j]=='0') arr[i-j]='1';
				}


				//pn(i+1);
				if((i+1)%2==1)
				{
					//pn((i+1)/2);
					if(arr[(i+1)/2]=='1') arr[(i+1)/2]='0';
					else if(arr[(i+1)/2]=='0') arr[(i+1)/2]='1';
				}

			}
			else
			{
				list.add(1);
				if(arr[0]=='1') arr[0]='0';
				else if(arr[0]=='0') arr[0]='1';

				list.add(i+1);

				for(int j=0;j<(i+1)/2;j++)
				{		
					char temp = arr[j];
					arr[j] = arr[i-j];
					arr[i-j] = temp;

					if(arr[j]=='1') arr[j]='0';
					else if(arr[j]=='0') arr[j]='1';

					if(arr[i-j]=='1') arr[i-j]='0';
					else if(arr[i-j]=='0') arr[i-j]='1';
				}

				//pn(i+1);
				if((i+1)%2==1)
				{
					//pn((i+1)/2);
					if(arr[(i+1)/2]=='1') arr[(i+1)/2]='0';
					else if(arr[(i+1)/2]=='0') arr[(i+1)/2]='1';
				}
			}
			// for(int k=0;k<n;k++)
			// {
			// 	p(arr[k]+" ");
			// }
			// pn();
		}
		p(list.size()+" ");
		for(int i=0;i<list.size();i++)
		{
			p(list.get(i)+" ");
		}
		pn();
	}
	void run() throws Exception 
	{
		in = new InputReader();
		pw = new PrintWriter(System.out);
		int test = ni();
		while(test--!=0){solve(test);}
		pw.close();
	}
	public static void main(String[] args) throws Exception
	{
		new Education_89_2().run();
	}
	void p(Object o){pw.print(o);}
	void pn(Object o){pw.println(o);}
	void pn(){pw.println();}
	void spn(Object o){System.out.println(o);};
	String nln() throws Exception {return in.nextLine();}
	int ni() throws Exception {return Integer.parseInt(in.next());}
	double nd() throws Exception {return Double.parseDouble(in.next());}
	long nl() throws Exception {return Long.parseLong(in.next());}
	class InputReader
	{
		BufferedReader br;
		StringTokenizer st;
 
		public InputReader()
		{
			br = new BufferedReader(new InputStreamReader(System.in));
		}
		public InputReader(String s) throws IOException
		{
			br = new BufferedReader(new FileReader(s));
		}
 
		String next() throws Exception
		{
			if(st==null || !st.hasMoreElements())
			{
				try
				{
					st = new StringTokenizer(br.readLine());
				}
				catch(IOException e)
				{
					throw new Exception(e.toString());
				}
			}
			return st.nextToken();
		}
 
		String nextLine() throws Exception
		{
			String str = "";
			try
			{
				str = br.readLine();
			}
			catch(IOException e)
			{
				throw new Exception(e.toString());
			}
			return str;
		}
	}
}