#include <bits/stdc++.h>
using namespace std;
int ans[1000001];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ((void)0);
  ((void)0);
  ((void)0);
  int N;
  long long K;
  cin >> N >> K;
  if (N * (N + 1LL) / 2 > K) {
    cout << "-1\n";
    return 0;
  }
  K -= N * (N + 1LL) / 2;
  for (int i = 1; i <= N; i++) ans[i] = i;
  for (int i = 1; i <= N + 1 - i; i++) {
    if (K >= N + 1 - 2 * i) {
      K -= N + 1 - 2 * i;
      swap(ans[i], ans[N + 1 - i]);
    } else {
      int s = i, e = N + 1 - i;
      while (s <= e) {
        int m = (s + e) >> 1;
        if (K >= m - i)
          s = m + 1;
        else
          e = m - 1;
      }
      swap(ans[i], ans[e]);
      break;
    }
  }
  K = 0;
  for (int i = 1; i <= N; i++) K += max(ans[i], i);
  cout << K << '\n';
  for (int i = 1; i <= N; i++) cout << i << ' ';
  cout << '\n';
  for (int i = 1; i <= N; i++) cout << ans[i] << ' ';
  return 0;
}
