Problem: Long story short, shashlik is Miroslav's favorite food. Shashlik is prepared on several skewers simultaneously. There are two states for each skewer: initial and turned over.

This time Miroslav laid out n skewers parallel to each other, and enumerated them with consecutive integers from 1 to n in order from left to right. For better cooking, he puts them quite close to each other, so when he turns skewer number i, it leads to turning k closest skewers from each side of the skewer i, that is, skewers number i - k, i - k + 1, ..., i - 1, i + 1, ..., i + k - 1, i + k (if they exist). 

For example, let n = 6 and k = 1. When Miroslav turns skewer number 3, then skewers with numbers 2, 3, and 4 will come up turned over. If after that he turns skewer number 1, then skewers number 1, 3, and 4 will be turned over, while skewer number 2 will be in the initial position (because it is turned again).

As we said before, the art of cooking requires perfect timing, so Miroslav wants to turn over all n skewers with the minimal possible number of actions. For example, for the above example n = 6 and k = 1, two turnings are sufficient: he can turn over skewers number 2 and 5.

Help Miroslav turn over all n skewers.

Input

The first line contains two integers n and k (1 ≤ n ≤ 1000, 0 ≤ k ≤ 1000) — the number of skewers and the number of skewers from each side that are turned in one step.

Output

The first line should contain integer l — the minimum number of actions needed by Miroslav to turn over all n skewers. After than print l integers from 1 to n denoting the number of the skewer that is to be turned over at the corresponding step.

Examples

Input

7 2


Output

2
1 6 


Input

5 1


Output

2
1 4 

Note

In the first example the first operation turns over skewers 1, 2 and 3, the second operation turns over skewers 4, 5, 6 and 7.

In the second example it is also correct to turn over skewers 2 and 5, but turning skewers 2 and 4, or 1 and 5 are incorrect solutions because the skewer 3 is in the initial state after these operations.

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
long long int ox = 1;
long long int xintoy(long long int x, long long int y, long long int M) {
  long long int ret = 0;
  x = x % M;
  while (y) {
    if (y & 1) ret = (ret % M + x % M) % M;
    x = (2 * (x % M)) % M;
    y = y / 2;
  }
  return ret;
}
long long int modularExponentiation(long long int x, long long int n,
                                    long long int M) {
  if (n == 0)
    return ox;
  else if (n % 2 == 0)
    return modularExponentiation(xintoy(x, x, M), n / 2, M) % M;
  else
    return xintoy(
        x, (modularExponentiation(xintoy(x, x, M), (n - 1) / 2, M) % M), M);
}
long long int GCD(long long int A, long long int B) {
  if (B == 0)
    return A;
  else
    return GCD(B, A % B);
}
long long int modutil(long long int mm, long long int a, long long int b,
                      long long int n) {
  long long int an = modularExponentiation(a, n, mm) % mm;
  long long int bn = modularExponentiation(b, n, mm) % mm;
  long long int add = (an % mm + bn % mm) % mm;
  return add;
}
long long int gcdutil(long long int diff, long long int a, long long int b,
                      long long int n) {
  long long int ret;
  if (diff != 0) {
    long long int mm = modutil(diff, a, b, n);
    ret = GCD(mm, diff);
  } else
    ret = modutil(1000000007, a, b, n);
  ret = ret % 1000000007;
  return ret;
}
long long int log3(long long int a) {
  long long int ret = 0;
  while (a % 3 == 0) ret++, a /= 3;
  return ret;
}
long long int m, p, gcd = 1e10, x, y, z, e, a, b, d, s, n, c, q, test, k, i, j,
                    l, r;
int main() {
  cin >> n >> k;
  long long int cnt = 0;
  vector<pair<long long int, vector<long long int>>> ans;
  for (j = 1; j < k + 2; j++) {
    cnt = j;
    vector<long long int> st;
    for (i = j; i < n + 1; i += (2 * k + 1)) {
      st.push_back(i);
      cnt = i;
    }
    i -= (2 * k + 1);
    if (n - i <= k) {
      ans.push_back(make_pair(st.size(), st));
    }
  }
  sort(ans.begin(), ans.end());
  vector<long long int> st = ans[0].second;
  cout << st.size() << endl;
  for (auto it : st) cout << it << " ";
}