#include <bits/stdc++.h>
using namespace std;
int sum, limit;
const int MAX = 1e5 + 7;
int ans[MAX];
int lowbit(int x) { return x & (-x); }
int main() {
  scanf("%d%d", &sum, &limit);
  int len = 0;
  for (int i = limit; i && sum; --i) {
    if (lowbit(i) <= sum) {
      sum -= lowbit(i);
      ans[len++] = i;
    }
  }
  if (sum) {
    printf("-1\n");
    return 0;
  }
  printf("%d\n", len);
  for (int i = 0; i < len; ++i) {
    printf("%d%c", ans[i], i == len - 1 ? '\n' : ' ');
  }
  return 0;
}
