// aaj mein karke aya !!
#include<bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#define int long long
#define IOS ios_base::sync_with_stdio(false);cin.tie(NULL);
#define pb push_back
#define eb emplace_back
#define fn for(int i =0 ;i <n;i++)
#define fn1 for( int i =1;i<=n;i++)
#define fm for(int j =0 ;j <m;j++)
#define fm1 for(int j =1;j<=m;j++)
#define fi first
#define se second
#define endl '\n'
# define PI 3.14159265358979323846
#define MOD 1000000007
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
const int N = 2e6+5;
const int INF = 1e18L;
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
cerr << name << ": " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
const char* comma = strchr(names + 1, ',');
cerr.write(names, comma - names) << ": " << arg1 << " |";
__f(comma + 1, args...);
}
int ar[N];
int dp[N];
signed main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
IOS;
int T=1;
// cin >> T;
while(T--){
int n,k;
cin >> n >> k;
int rep = n/k;
int rem = n%k;
vector<int>v;
while(rep>0){
v.pb(rem);
v.pb(k-rem);
v.pb(0);
rep--;
}
if(rem>0)
v.pb(rem);
cout << v.size () << endl;
for(auto i : v)cout << i <<" ";
}
return 0;
}
Ly8gYWFqIG1laW4ga2Fya2UgYXlhICEhCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNwcmFnbWEgR0NDIG9wdGltaXplKCJPZmFzdCIpIAojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBJT1MgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7Y2luLnRpZShOVUxMKTsKI2RlZmluZSBwYiBwdXNoX2JhY2sgCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgZm4gZm9yKGludCBpID0wIDtpIDxuO2krKykKI2RlZmluZSBmbjEgZm9yKCBpbnQgaSA9MTtpPD1uO2krKykKI2RlZmluZSBmbSBmb3IoaW50IGogPTAgO2ogPG07aisrKQojZGVmaW5lIGZtMSBmb3IoaW50IGogPTE7ajw9bTtqKyspCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBlbmRsICdcbicKIyBkZWZpbmUgUEkgIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIGFsbChhKSBhLmJlZ2luKCksYS5lbmQoKQojZGVmaW5lIHJhbGwoYSkgYS5yYmVnaW4oKSxhLnJlbmQoKQpjb25zdCBpbnQgTiA9IDJlNis1Owpjb25zdCBpbnQgSU5GID0gMWUxOEw7CiNkZWZpbmUgdHJhY2UoLi4uKSBfX2YoI19fVkFfQVJHU19fLCBfX1ZBX0FSR1NfXykKdGVtcGxhdGUgPHR5cGVuYW1lIEFyZzE+CnZvaWQgX19mKGNvbnN0IGNoYXIqIG5hbWUsIEFyZzEmJiBhcmcxKXsKICBjZXJyIDw8IG5hbWUgPDwgIjogIiA8PCBhcmcxIDw8IGVuZGw7Cn0KdGVtcGxhdGUgPHR5cGVuYW1lIEFyZzEsIHR5cGVuYW1lLi4uIEFyZ3M+CnZvaWQgX19mKGNvbnN0IGNoYXIqIG5hbWVzLCBBcmcxJiYgYXJnMSwgQXJncyYmLi4uIGFyZ3MpewogIGNvbnN0IGNoYXIqIGNvbW1hID0gc3RyY2hyKG5hbWVzICsgMSwgJywnKTsKICBjZXJyLndyaXRlKG5hbWVzLCBjb21tYSAtIG5hbWVzKSA8PCAiOiAiIDw8IGFyZzEgPDwgIiB8IjsKICBfX2YoY29tbWEgKyAxLCBhcmdzLi4uKTsKfQppbnQgYXJbTl07CmludCBkcFtOXTsKc2lnbmVkIG1haW4oKXsKCSNpZm5kZWYgT05MSU5FX0pVREdFCglmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKCSNlbmRpZgoJSU9TOwoJaW50IFQ9MTsKCS8vIGNpbiA+PiBUOwoJd2hpbGUoVC0tKXsKCSAgaW50IG4sazsKIAkgIGNpbiA+PiBuID4+IGs7CgkgIGludCByZXAgPSBuL2s7CiAgICAgIGludCByZW0gPSBuJWs7CiAgICAgIHZlY3RvcjxpbnQ+djsKICAgICAgd2hpbGUocmVwPjApewogICAgICAgIHYucGIocmVtKTsKICAgICAgICB2LnBiKGstcmVtKTsKICAgICAgICB2LnBiKDApOwogICAgICAgIHJlcC0tOwogICAgICB9CiAgICAgIGlmKHJlbT4wKQogICAgICB2LnBiKHJlbSk7CiAgICAgIGNvdXQgPDwgdi5zaXplICgpIDw8IGVuZGw7CiAgICAgIGZvcihhdXRvIGkgOiB2KWNvdXQgPDwgaSA8PCIgIjsKCX0KCXJldHVybiAwOwp9