N, M, K = gets.split.map(&:to_i) if (N == 0 || M == 0) if K != 0 puts -1 else if N == 0 puts '1' * M else puts '0' * N end end exit end zero_stack = [0] * N one_stack = [1] * M max = 2 * [N, M].min max -= 1 if N == M if K == 0 || max < K puts -1 exit end k = K if k.even? one_stack.push(zero_stack.pop) k -= 1 end ans = [] d = (k + 1) / 2 while zero_stack.size > d ans << zero_stack.shift end while zero_stack.size > 0 || one_stack.size > 0 ans << zero_stack.shift if zero_stack.size > 0 ans << one_stack.shift if one_stack.size > 0 end puts ans.join