#include <bits/stdc++.h>

using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
#define ll __int128
//#define int ll
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector< vi > vvi;
typedef vector< vvi > vvvi;
typedef vector<short> vs;
typedef vector<vs> vvs;
typedef vector<vvs> vvvs;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef vector<vvl> vvvl;
typedef vector<ld> vld;
typedef vector<vld> vvld;
typedef vector<vvld> vvvld;
typedef vector<string> vst;
typedef vector<vst> vvst;
typedef pair<ld, ld> pld;
typedef complex<double> base;

#define inmin(a, b) a = min(a, (b))
#define inmax(a, b) a = max(a, (b))
#define mp(a,b) make_pair(a,b)
#define modsum(a, b) ((a) + (b) >= M ? (a) + (b) - M : (a) + (b))
#define modsubtract(a, b) ((a) - (b) < 0 ? (a) - (b) + M : (a) - (b))
#define modmultiply(a, b) (((a) * (b)) % M)
#define ALL(a) a.begin(),a.end()
#define RALL(a) a.rbegin(),a.rend()
#define sqr(x) ((x) * (x))
#define fori(i, n) for(int i = 0; i < int(n); ++i)
#define cint const int &
#define SZ(a) ((int)(a.size()))
#define watch(x) cout << (#x) << " = " << x << endl;

const double PI = 2 * acos(0.0);

const string DIGITS = "0123456789";
const string ALPH = "abcdefghijklmnopqrstuvwxyz";


template<class T>
ostream & operator << (ostream &out, vector<T> &a) {
    out << "(";
    for (auto x : a) out << x << " ";
    return out << ")";
}

void smain();

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);


#ifdef MAX_HOME
    freopen("input.txt", "r", stdin);
    clock_t start = clock();
#endif
    cout << setprecision(12) << fixed;
    smain();
#ifdef MAX_HOME
    cout << "\n\n\n\n";
    cout << "TOTAL EXECUTION TIME: " << float( clock () - start ) /  CLOCKS_PER_SEC << endl;
#endif
}

ostream & operator << (ostream &out, __int128 n) {
    string s = "";
    if (n == 0) s = "0";
    while (n) {
        s += char(n % 10 + '0');
        n /= 10;
    }
    reverse(ALL(s));
    return out << s;
}

istream & operator >> (istream &in, __int128 &n) {
    long long kek;
    in >> kek;
    n = kek;
    return in;
}

vl aux(int k, int n) {
    set<vl> all({{}});
    for (int i = 0; i < n; ++i) {
        vvl tmp(ALL(all));
        for (auto v : tmp) {
            for (int j = 0; j < k; ++j) {
                v.push_back(j + 1);
                all.insert(v);
                v.pop_back();
            }
        }
    }
    vl er = {};
    all.erase(er);
    int cnt = 1;
    int kek = all.size();
    kek = kek + 1 >> 1;
    vl ret;
    for (auto x : all) {
        if (cnt == kek) {
            ret = x;
        }
//        cout << "x[" << cnt << "] : " << x << endl;
        cnt++;
    }
    return ret;
}

const ll BOUND = 4e5;

vl a;
ll k, n;

void init() {
    a.clear();
    a.push_back(1);
    while (a.back() < BOUND && a.size() <= n) {
        a.push_back(a.back() * k);
    }
    a[0] = 0;
    for (int i = 1; i < a.size(); ++i)
        a[i] += a[i - 1];
//    watch(a);
}

vl solve(ll ink, ll inn) {
    k = ink;
    n = inn;
    init();
    ll mid = k + 1 >> 1;

    vl ret;
    if (k & 1) {
        ll c = 0;
        vl ans;
        for (int i = 0; i < n; ++i) {
//            cout << "c[" << i << "] = " << c << endl;
            ll rest = n - i - 1;
            if (rest >= a.size()) {
                ans.push_back(mid);
                c++;
            } else {
                ll p = a[rest] + 1;
                ll x = (p * k - c) / (p * 2);
                if (x * p + c == (k - x) * p) {
                    ans.push_back(x);
                    c += x * p - (k - x) * p - (p - 1);
                } else {
                    if ((k - x) * p - (x * p + c) <= 2) {
                        ans.push_back(x + 1);
                        break;
                    } else {
                        ans.push_back(x + 1);
                        c += x * p + 1 - (k - x - 1) * p;
                    }
                }
            }
        }
        ret = ans;
//        assert(naive == ans);
    } else {
        ret.push_back(k >> 1);
        for (int i = 1; i < n; ++i) ret.push_back(k);
    }
    return ret;
}

void stress() {
    srand(time(0));
    int cnt = -1;
    while (1) {
        if (++cnt % 20 == 0) watch(cnt);
        ll n = 1 + rand() % 5;
        ll k = 1 + rand() % 5;
        vl sl = solve(k, n);
        vl nv = aux(k, n);
        if (sl != nv) {
            cout << k << " " << n << endl;
            watch(cnt);
            watch(sl);
            watch(nv);
            return;
        }
    }
}

void smain() {

//    stress();
//    return;
    cin >> k >> n;
    vl ans = solve(k, n);
    for (auto x : ans) cout << x << " ";
//    vl nv = aux(k, n);
//    watch(ans);
//    watch(nv);
}

Measured memory_bytes: 14952