#include <bits/stdc++.h>
using namespace std;
int n, a[1000010];
long long k, ans;
int main() {
  scanf("%d%lld", &n, &k);
  ans = n * 1ll * (n + 1) / 2;
  for (int i = 1; i <= n; i++) a[i] = i;
  if (k < ans) return puts("-1");
  for (int i = 1; i <= n; i++) {
    int d = n - 2 * i + 1;
    if (d <= 0) break;
    if (ans + d > k) {
      swap(a[n + 1 - i], a[n + 1 - i - (k - ans)]);
      ans = k;
      break;
    }
    swap(a[n + 1 - i], a[i]);
    ans += d;
  }
  printf("%lld\n", ans);
  for (int i = 1; i <= n; i++) printf("%d ", i);
  puts("");
  for (int i = 1; i <= n; i++) printf("%d ", a[i]);
}
