#include <bits/stdc++.h>
using namespace std;
std::vector<long long> p;
void sieve(long long n, vector<long long>& v) {
  bool a[n + 1];
  memset(a, 0, sizeof(a));
  v.push_back(2);
  for (long long i = 3; i <= n; i += 2) {
    if (a[i] == 0) {
      v.push_back(i);
      for (long long j = i * i; j <= n; j += i * 2) {
        a[j] = 1;
      }
    }
  }
}
void segSieve(long long l, long long h) {
  long long n = floor(sqrt(h)) + 1;
  vector<long long> v;
  sieve(n, v);
  long long m = h - l + 1;
  bool b[m + 1];
  memset(b, 0, sizeof(b));
  for (long long i = 0; i < v.size(); i++) {
    long long base = v[i] * v[i];
    if (base < l) {
      base = ((l + v[i] - 1) / v[i]) * v[i];
    }
    for (long long j = base; j <= h; j += v[i]) {
      b[j - l] = 1;
    }
  }
  for (long long i = l; i <= h; i++) {
    if (b[i - l] == 0) {
      if (i != 1) {
        p.emplace_back(i);
      }
    }
  }
}
bool isPrime(long long a) {
  if (a <= 1)
    return false;
  else if (a <= 3)
    return true;
  if (a % 2 == 0 || a % 3 == 0) return false;
  for (long long i = 5; i * i <= a; i += 6) {
    if (a % i == 0 || a % (i + 2) == 0) return false;
  }
  return true;
}
int main() {
  unsigned long long int a, b;
  cin >> a >> b;
  unsigned long long int cnt = 0;
  vector<unsigned long long int> v;
  for (unsigned long long int i = a; i <= b; i++) {
    if (cnt == 0) {
      if (i % 2 == 0) {
        v.emplace_back(i);
        cnt++;
      }
    }
    if (cnt == 1) {
      if (i % 2 != 0) {
        v.emplace_back(i);
        cnt++;
      }
    }
    if (cnt == 2) {
      if (i % 2 == 0) {
        v.emplace_back(i);
        cnt++;
      }
    }
    if (cnt == 3) {
      break;
    }
  }
  if (v.size() == 3) {
    cout << v[0] << " " << v[1] << " " << v[2];
    return 0;
  }
  unsigned long long int c = 0;
  vector<unsigned long long int> d;
  for (unsigned long long int i = a; i <= b; i++) {
    if (cnt == 0) {
      if (i % 2 != 0) {
        d.emplace_back(i);
        c++;
      }
    }
    if (cnt == 1) {
      if (i % 2 == 0) {
        d.emplace_back(i);
        c++;
      }
    }
    if (cnt == 2) {
      if (i % 2 != 0) {
        d.emplace_back(i);
        c++;
      }
    }
    if (c == 3) {
      break;
    }
  }
  if (d.size() == 3) {
    cout << d[0] << " " << d[1] << " " << d[2];
    return 0;
  }
  cout << -1;
  return 0;
}
