Problem:
Score : 800 points

Problem Statement

In Finite Encyclopedia of Integer Sequences (FEIS), all integer sequences of lengths between 1 and N (inclusive) consisting of integers between 1 and K (inclusive) are listed.

Let the total number of sequences listed in FEIS be X. Among those sequences, find the (X/2)-th (rounded up to the nearest integer) lexicographically smallest one.

Constraints

1 \leq N,K \leq 3 × 10^5

N and K are integers.

Input

Input is given from Standard Input in the following format:

K N

Output

Print the (X/2)-th (rounded up to the nearest integer) lexicographically smallest sequence listed in FEIS, with spaces in between, where X is the total number of sequences listed in FEIS.

Sample Input 1

3 2

Sample Output 1

2 1

There are 12 sequences listed in FEIS: (1),(1,1),(1,2),(1,3),(2),(2,1),(2,2),(2,3),(3),(3,1),(3,2),(3,3).
The (12/2 = 6)-th lexicographically smallest one among them is (2,1).

Sample Input 2

2 4

Sample Output 2

1 2 2 2

Sample Input 3

5 14

Sample Output 3

3 3 3 3 3 3 3 3 3 3 3 3 2 2

Solution in C++14 (Clang 3.8.0) (judge verdict: Wrong Answer)

#include<iostream>
#include<algorithm>

using namespace std;
int k, n;
int res[1080000];
int main(){
	cin >> k >> n;
	int N = n;
	if(k % 2 == 0){
		cout << k / 2;
		for(int i = 0;i < n - 1;i++)cout << " " << k;
		cout << endl;
		return 0;
	}

	for(int i = 0;i < n;i++)res[i] = k/2+1;
	if(n == 1)n--;
	n=(n+1)/2;
	while(n--){
		int j = 0;
		while(res[j] == 0)j++;
		res[j]--;
		if(res[j] != 0)
			for(int i = 0;i < j;i++)res[i] = k;
		
	}
	for(int i = N-1;i >= 0;i--){
		if(res[i] == 0)break;
		cout << res[i] << " ";
	}
	cout << endl;
	return 0;
}