#include <iostream>
using namespace std;
int main()
{
int n; cin >> n; //количество зерен
int m; cin >> m; //часть, которую можно съесть за ход
int result[n - m + 1]; //массив значений
for(int i = 0; i < n - m + 1; i++) //очистка массива от мусора
result[i] = 0;
result[0] = 1; //в позиции n = m взять одно зерно и выиграть
result[1] = -1; //из позиции n = m + 1 выиграть нельзя
int take_to_win = 0; //расстояние до ближайшей выигрышной позиции
for(size_t step = m + 2; step < n + 1; step++) //заполнение массива result[]
{
bool good = false; //есть ли возможность перейти на выигрышную позицию из данной
//проверка всех позиций, в которые можно попасть за ход
for(int i = step - m; i >= ((step - step / m) - m) && !good; i--)
{
if(result[i] == -1){ //если выигрышная позиция достижима
good = true; //уведомить об этом программу
take_to_win = n - m - i; //зафиксировать расстояние до позиции
}
}
if(good) result[step - m] = 1; //если возможно, пометить позицию как выгрышную
else result[step - m] = -1; //иначе пометить как прогрышную
}
for(int i = 0; i < n - m + 1; i++) //очистка массива от мусора
cout << i + m << ":\t" << result[i] << endl;
if(result[n - m] == 1) //вывести на экран оптимальное количество зерен на первом шаге
cout << take_to_win << endl;
else //или указать, что позиция проигрышная
cout << -1 << endl;
return 0;
}