#include <iostream>
#include <bits/stdc++.h>
using namespace std;
//#define push_back pb;
//#define make_pair mp;
#define lp(i,start , end) for(int i = start ; i<end ; ++i)
#define Rlp(i,start , end) for(int i = start ; i>end ; --i)
#define all(v) ((v).begin(),(v).end())
#define sz(v) (int)((v).size())
#define clr(v,d) memset(v , d , sizeof(v))
typedef long long ll;
typedef vector<int> vi;
typedef vector <ll> vll;
typedef vector<vector<int> > adj;
typedef pair<int ,int> pii;
const double EPS =1e-7;
const int OO = 1e6;
bool sortpair( const pair<int , int> & x, const pair<int , int> & y)
{
return x.first != y.first ? x.first < y.first : x.second > y.second ;
}
int dcomp(double x , double y)
{
return fabs(x-y) <= EPS? 0: x>y?1:-1;
}
//int arr[22];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int n , k; cin >> n >> k;
int ans = (n + 2* k )/ (2*k +1) ;
cout<<ans <<endl;
int j = 1;
lp(i,1, ans+1){
if(j* k +i > n) cout<<n;
else
cout<<j*k+i<<" ";
j+=2;
}
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLy8jZGVmaW5lIHB1c2hfYmFjayAgICAgICAgICAgICAgIHBiOwovLyNkZWZpbmUgbWFrZV9wYWlyICAgICAgICAgICAgICAgbXA7CiNkZWZpbmUgbHAoaSxzdGFydCAsIGVuZCkgICAgICAgZm9yKGludCBpID0gc3RhcnQgOyBpPGVuZCA7ICsraSkKI2RlZmluZSBSbHAoaSxzdGFydCAsIGVuZCkgICAgICBmb3IoaW50IGkgPSBzdGFydCA7IGk+ZW5kIDsgLS1pKQojZGVmaW5lIGFsbCh2KSAgICAgICAgICAgICAgICAgICAoKHYpLmJlZ2luKCksKHYpLmVuZCgpKQojZGVmaW5lIHN6KHYpICAgICAgICAgICAgICAgICAgKGludCkoKHYpLnNpemUoKSkKI2RlZmluZSBjbHIodixkKSAgICAgICAgICAgICAgICBtZW1zZXQodiAsIGQgLCBzaXplb2YodikpCnR5cGVkZWYgbG9uZyBsb25nICAgICAgICAgICAgICAgbGw7CnR5cGVkZWYgdmVjdG9yPGludD4gICAgICAgICAgICAgdmk7CnR5cGVkZWYgdmVjdG9yICA8bGw+ICAgICAgICAgICAgdmxsOwp0eXBlZGVmIHZlY3Rvcjx2ZWN0b3I8aW50PiA+ICAgIGFkajsKdHlwZWRlZiBwYWlyPGludCAsaW50PiAgICAgICAgICBwaWk7CgoKY29uc3QgZG91YmxlIEVQUyA9MWUtNzsKY29uc3QgaW50IE9PID0gMWU2Owpib29sIHNvcnRwYWlyKCBjb25zdCBwYWlyPGludCAsIGludD4gJiB4LCBjb25zdCBwYWlyPGludCAsIGludD4gJiB5KQp7CgogICAgcmV0dXJuICB4LmZpcnN0ICE9IHkuZmlyc3QgPyB4LmZpcnN0IDwgeS5maXJzdCA6IHguc2Vjb25kID4geS5zZWNvbmQgOwoKCn0KaW50IGRjb21wKGRvdWJsZSB4ICwgZG91YmxlIHkpCnsKICAgIHJldHVybiBmYWJzKHgteSkgPD0gRVBTPyAwOiB4Pnk/MTotMTsKfQovL2ludCBhcnJbMjJdOwppbnQgbWFpbigpIHsKICAgICAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgICAgIGNpbi50aWUoTlVMTCk7CiAgICAgICAgY291dC50aWUoTlVMTCk7CgogICAgICAgIGludCBuICwgazsgY2luID4+IG4gPj4gazsKICAgICAgICBpbnQgYW5zID0gKG4gKyAyKiBrICApLyAoMiprICsxKSA7CiAgICAgCiAgICAgICAgY291dDw8YW5zICA8PGVuZGw7CiAgICAgICAgaW50ICBqID0gMTsKICAgICAgICBscChpLDEsIGFucysxKXsKICAgICAgICAgICAgaWYoaiogayAraSA+IG4pIGNvdXQ8PG47CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGNvdXQ8PGoqaytpPDwiICI7CiAgICAgICAgICAgIGorPTI7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgcmV0dXJuIDA7Cn0=