Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int l = scan.nextInt();
int min = 100;
// l보다는 크고 100보다는 작은 연속합의 최소횟수 체크
int sum = 0;
// n과 비교할 연속합이 저장됨
int count = 0;
// sum에 더해지는 횟수를 계산
int temp = 0;
// 배열에 저장될 임시값이 들어갈 변수
int [] arr = new int [n];
// 연속합에 사용되는 숫자가 저장될 변수
for(int i = 1; i < n/2; i++) {
sum = 0;
count = 0;
temp = 0;
loop :for(int j = i; j < n/2; j++) {
if(sum < n) {
sum += j;
count++;
// n과 같아지기 위해서 지속적으로 sum에 더해줌
if(sum == n) {
if(min >= count && count >= l) {
Arrays.fill(arr,0);
//최솟값을 찾았음으로 배열의 있는 수를 0으로 초기화
min = count;
temp = i;
//연속합의 초기값 i로 지정
for(int k = 1; k <=count; k++) {
arr[k] = temp;
temp++;
//count 값 만큼 배열에 저장
}
}else {
break loop;
}
}
}
else {
break loop;
}
}
}
Arrays.sort(arr);
//올림차수 정렬
if(arr[n-1] == 0) {
System.out.println(-1);
//연속합이 되는지 여부 체크
//연속합이 될경우 마지막에 무조건 0보다 큰 값이들어감
}else {
for(int i = 0 ; i < n; i++) {
if(arr[i] != 0) {
System.out.print(arr[i]+ " ");
}
}
}