#include <bits/stdc++.h>
using namespace std;
const int MAX = 111;
int s[MAX], a, b, n;
void dfs(int *s, int i, int num, int sum) {
  if (num > 50000) return;
  if (i >= n) return;
  if (b) {
    if (sum >= 50000) return;
    s[i] = sum + 1;
    b--;
    dfs(s, i + 1, sum + 1, sum + sum + 1);
  } else {
    if (a) {
      if (num >= 50000) return;
      if (num >= sum) {
        s[i] = s[i - 1];
        dfs(s, i + 1, num, sum + s[i]);
      } else {
        s[i] = num + 1;
        a--;
        dfs(s, i + 1, num + 1, sum + num + 1);
      }
    } else {
      s[i] = s[i - 1];
      dfs(s, i + 1, num, sum + s[i]);
    }
  }
  return;
}
int main() {
  while (cin >> n >> a >> b) {
    if (a + b > n) {
      cout << "-1\n";
      continue;
    }
    s[0] = 1;
    dfs(s, 1, 1, 1);
    if (a == 0 && b == 0) {
      cout << s[0];
      for (int i = 1; i < n; ++i) {
        printf(" %d", s[i]);
      }
    } else
      cout << "-1";
    cout << endl;
  }
  return 0;
}
