You are given three integers a, b and x. Your task is to construct a binary string s of length n = a + b such that there are exactly a zeroes, exactly b ones and exactly x indices i (where 1 ≤ i < n) such that s_i ≠ s_{i + 1}. It is guaranteed that the answer always exists.

For example, for the string "01010" there are four indices i such that 1 ≤ i < n and s_i ≠ s_{i + 1} (i = 1, 2, 3, 4). For the string "111001" there are two such indices i (i = 3, 5).

Recall that binary string is a non-empty sequence of characters where each character is either 0 or 1.

Input

The first line of the input contains three integers a, b and x (1 ≤ a, b ≤ 100, 1 ≤ x < a + b).

Output

Print only one string s, where s is any binary string satisfying conditions described above. It is guaranteed that the answer always exists.

Examples

Input

2 2 1


Output

1100


Input

3 3 3


Output

101100


Input

5 3 6


Output

01010100

Note

All possible answers for the first example: 

  * 1100; 
  * 0011. 



All possible answers for the second example: 

  * 110100; 
  * 101100; 
  * 110010; 
  * 100110; 
  * 011001; 
  * 001101; 
  * 010011; 
  * 001011. 
import java.io.*;
import java.util.*;
public class div494B
{
	BufferedReader in;
	PrintWriter ob;
	StringTokenizer st;
	public static void main(String[] args) throws IOException {
		new div494B().run();
	}
	void run() throws IOException {
		//in=new BufferedReader(new FileReader("input.tmovest"));
		in=new BufferedReader(new InputStreamReader(System.in));
		ob=new PrintWriter(System.out);
		solve();
		ob.flush();
	}
	void solve() throws IOException {
		int a = ni() , b = ni() , x = ni();
		int one = 0 , zero = 0;
		String ans = "";
		if(a>=b) {
			ans+= "0";
			++zero;
			for(int i=1 ; i<=x ; i++) {
				if(i%2!=0) {
					ans+="1";
					++one;
				}
				else {
					ans+="0";
					++zero;
				}
			}
		} 
		else {
			++one;
			ans+="1";
			for(int i=1 ; i<=x ; i++) {
				if(i%2!=0) {
					ans+="0";
					++zero;
				}
				else {
					ans+="1";
					++one;
				}
			}
		}
		a-=zero;
		b-=one;
		if(a>0) {
			if(ans.endsWith("0")) {
				while(a-->0)
					ans+="0";
			}
			else if(ans.startsWith("0"))
			{
				while(a-->0)
					ans="0"+ans;	
			}
			else{
				int index = ans.indexOf("0");
				String pre = ans.substring(0 , index);
				String next = ans.substring(index+1);
				pre+="0";
				while(a-->0)
					pre+="0";
				ans = pre+next;		
			}
		}
		if(b>0) {
			if(ans.endsWith("1")) {
				while(b-->0)
					ans+="1";
			}
			else if(ans.startsWith("1"))
			{
				while(b-->0)
					ans="1"+ans;	
			}
			else{
				int index = ans.indexOf("1");
				String pre = ans.substring(0 , index);
				String next = ans.substring(index+1);
				pre+="1";
				while(b-->0)
					pre+="1";
				ans = pre+next;		
			}
		}
		ob.println(ans);
	}
	String ns() throws IOException {
		return nextToken();
	}
	long nl() throws IOException {
		return Long.parseLong(nextToken());
	}
	int ni() throws IOException {
		return Integer.parseInt(nextToken());
	}
	double nd() throws IOException {
		return Double.parseDouble(nextToken());
	} 
	String nextToken() throws IOException {
		if(st==null || !st.hasMoreTokens())
			st=new StringTokenizer(in.readLine());
		return st.nextToken();
	}
	int[] nia(int start,int b) throws IOException {
		int a[]=new int[b];
		for(int i=start;i<b;i++)
			a[i]=ni();
		return a;
	}
	long[] nla(int start,int n) throws IOException {
		long a[]=new long[n];
		for (int i=start; i<n ;i++ ) {
			a[i]=nl();
		}
		return a;
	}
}