#include <bits/stdc++.h>
using namespace std;
const unsigned long long MOD = 1e9 + 7;
const int INF = 1e9;
const unsigned long long INF64 = 9e18;
const long double EPS = 1e-12;
const long double PI = 3.14159265358979310000;
const unsigned long long MD = 535355424;
const unsigned long long T = 25342;
const int N = 200001;
const int M = 1001;
int n, a, b;
int main() {
  cin >> n >> a >> b;
  if (n == 1 && (a + b >= 1)) {
    cout << -1 << endl;
    return 0;
  }
  if (n == 1) {
    cout << 1 << endl;
    return 0;
  }
  if (n == a + 1 && b == 0) {
    cout << -1 << endl;
    return 0;
  }
  if (a + b > n) {
    cout << -1;
    return 0;
  }
  vector<int> ans;
  int s = n - a - b - 1, sum, k = 2, ss = 0, s1 = 1;
  ans.push_back(1);
  if (b == 0) {
    ans.push_back(1);
    s--;
  }
  ss = 1;
  for (int i = 0; i < int(b); i++) {
    ans.push_back(ss + 1);
    s1 = ss + 1;
    ss += ss + 1;
  }
  for (int i = 0; i < int(a); i++) ans.push_back(s1 + i + 1);
  s1 = s1 + a;
  for (int i = 0; i < int(s); i++) ans.push_back(1);
  for (int i = 0; i < int(n); i++) cout << ans[i] << ' ';
  return 0;
}
