#include<bits/stdc++.h>
using namespace std;

map<pair<int,int>, int> dp;
map<pair<int,int>, pair<int,int>> rng;

int solve(int n, int k){
    if(n == 0){
        return 0;
    }
        
    if(n == 1){
        return 1;
    }
    
    if(k == 1){
        rng[{n,k}] = {1, 1};
        return n;
    }
    
    if(dp.count({n,k})) return dp[{n,k}];
    
    int best = INT_MAX;
    int minx = -1, maxx = -1;
    
    for(int x = 1; x <= n; x++){
        int worst = 1 + max(solve(x-1, k-1), solve(n-x, k));
        
        if(worst < best){
            best = worst;
            minx = x;
            maxx = x;
        }
        else if(worst == best){
            maxx = x;
        }
    }
    
    rng[{n,k}] = {minx, maxx};
    return dp[{n,k}] = best;
}

int main(){
    int n, k;
    cin >> n >> k;
    
    int ans = solve(n, k);
    
    cout << ans << " ";
    
    auto p = rng[{n,k}];
    if(p.first == p.second){
        cout << p.first;
    }
    else{
        cout << p.first << "-" << p.second;
    }
    
    return 0;
}