Problem: Let's say string s has period k if s_i = s_{i + k} for all i from 1 to |s| - k (|s| means length of string s) and k is the minimum positive integer with this property.

Some examples of a period: for s="0101" the period is k=2, for s="0000" the period is k=1, for s="010" the period is k=2, for s="0011" the period is k=4.

You are given string t consisting only of 0's and 1's and you need to find such string s that:

  1. String s consists only of 0's and 1's; 
  2. The length of s doesn't exceed 2 ⋅ |t|; 
  3. String t is a subsequence of string s; 
  4. String s has smallest possible period among all strings that meet conditions 1—3. 



Let us recall that t is a subsequence of s if t can be derived from s by deleting zero or more elements (any) without changing the order of the remaining elements. For example, t="011" is a subsequence of s="10101".

Input

The first line contains single integer T (1 ≤ T ≤ 100) — the number of test cases.

Next T lines contain test cases — one per line. Each line contains string t (1 ≤ |t| ≤ 100) consisting only of 0's and 1's.

Output

Print one string for each test case — string s you needed to find. If there are multiple solutions print any one of them.

Example

Input


4
00
01
111
110


Output


00
01
11111
1010

Note

In the first and second test cases, s = t since it's already one of the optimal solutions. Answers have periods equal to 1 and 2, respectively.

In the third test case, there are shorter optimal solutions, but it's okay since we don't need to minimize the string s. String s has period equal to 1.

Solution (in JAVA):

Solution:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;


public class b {
	public static void main(String[] args) throws Exception {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		FastScanner sc = new FastScanner(in);
		PrintWriter out = new PrintWriter(System.out);

		int t = sc.nextInt();
		while (t-- > 0) {
		String s  = sc.nextToken();
		if(check(s ) || check2(s)) {
			out.println(s);
			continue;
		}
	    String ans = "";
	    for(int i = 0 ; i < s.length() ;i++) {
	    	if(i==0) {
	    		ans+=s.charAt(i);
	    		continue;}
	    	if(s.charAt(i-1) == s.charAt(i)) {
	    		if(s.charAt(i)=='1') {
	    			ans  = ans + "01";
	    		}else {
	    			ans  = ans + "10";
	    		}
	    	}else {
	    		ans += s.charAt(i);
	    	}
	    	
	    }
	    out.println(ans);
		}
		out.flush();
	}
   public static boolean check(String s) {
	   boolean che = true;
	   char ch = '0';
	   for(int i = 0 ; i < s.length() ; i++) {
		   if(che) {
			   ch = s.charAt(i);
			   che =false;
		   }else {
			   if(ch != s.charAt(i)) {
				   return false;
			   }
		   }
	   }
	   return true;
   }
   public static boolean check2(String s) {
	   boolean che = true;
	   char ch = '1';
	   for(int i = 0 ; i < s.length() ; i++) {
		   if(che) {
			   ch = s.charAt(i);
			   che =false;
		   }else {
			   if(ch != s.charAt(i)) {
				   ch = s.charAt(i);
			   }else {
				   return false;
			   }
		   }
	   }
	   return true;
   }
	static class FastScanner {
		BufferedReader in;
		StringTokenizer st;

		public FastScanner(BufferedReader in) {
			this.in = in;
		}

		public String nextToken() throws Exception {
			while (st == null || !st.hasMoreTokens()) {
				st = new StringTokenizer(in.readLine());
			}
			return st.nextToken();
		}

		public int nextInt() throws Exception {
			return Integer.parseInt(nextToken());
		}

		public long nextLong() throws Exception {
			return Long.parseLong(nextToken());
		}

		public double nextDouble() throws Exception {
			return Double.parseDouble(nextToken());
		}
	}
}