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. 
#include <bits/stdc++.h>
using namespace std;
int rd(int &x) { return scanf("%d", &x); }
int rd(int &x, int &y) { return scanf("%d %d", &x, &y); }
int rd(int &x, int &y, int &z) { return scanf("%d %d %d", &x, &y, &z); }
int rd(int &x, int &y, int &z, int &s) {
  return scanf("%d %d %d %d", &x, &y, &z, &s);
}
long long rd(long long &x) { return scanf("%lld", &x); }
long long rd(long long &x, long long &y) { return scanf("%lld %lld", &x, &y); }
long long rd(long long &x, long long &y, long long &z) {
  return scanf("%lld %lld %lld", &x, &y, &z);
}
long long rd(long long &x, long long &y, long long &z, long long &s) {
  return scanf("%lld %lld %lld %lld", &x, &y, &z, &s);
}
void shaon() { cerr << endl; }
template <typename T, typename... north>
void shaon(T arg, const north &...rest) {
  cerr << arg << ' ';
  shaon(rest...);
}
long long a, b, x;
int main() {
  rd(a, b, x);
  long long m;
  if (x & 1)
    m = (x + 1) / 2;
  else
    m = (x / 2) + 1;
  long long k;
  if (x & 1)
    k = (x + 1) / 2;
  else
    k = x / 2;
  if (a > b) {
    long long r = a - m;
    for (int i = 0; i < (r); i++) printf("0");
    printf("01");
    long long p = b - k;
    for (int i = 0; i < (p); i++) printf("1");
    long long w = 1;
    for (int i = 0; i < (x - 1); i++) {
      if (w & 1) {
        printf("0");
      } else
        printf("1");
      w++;
    }
  } else {
    long long r = b - m;
    for (int i = 0; i < (r); i++) printf("1");
    printf("10");
    long long p = a - k;
    for (int i = 0; i < (p); i++) printf("0");
    long long w = 1;
    for (int i = 0; i < (x - 1); i++) {
      if (w & 1) {
        printf("1");
      } else
        printf("0");
      w++;
    }
  }
  return 0;
}
