#ifdef DEBUG
#  define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include "testlib.h"
#define ff first
#define ss second
#define szof(x) ((int)x.size())
#ifndef LOCAL
#  define cerr __get_ce
#endif

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef unsigned long long ull;

using namespace __gnu_pbds;
template <typename T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename K, typename V> using ordered_map = tree<K, V, less<K>, rb_tree_tag, tree_order_statistics_node_update>;

int main(int argc, char* argv[]) {
  registerGen(argc, argv, 1);

  int nl = opt<int>("nl");
  int nr = opt<int>("nr");
  int kl = opt<int>("kl");
  int kr = opt<int>("kr");

  int n = rnd.next(nl, nr);
  int m = rnd.next(nl, nr);
  kr = min(kr, min(3, min(n, m)));
  kl = min(kl, kr);
  int k = rnd.next(kl, kr);
  cout << n << " " << m << " " << k << '\n';
  for (int i = 0; i < k; i++) {
    cout << rnd.next(2);
  }
  cout << '\n';

  return 0;
}