#include <iostream>
#include <bits/stdc++.h>

using namespace std;

int main() {
    long long n; int m;
    cin >> n >> m;
    
    vector<long long> prev(m + 1, 0), next(m + 1, 0);
    
    int t = 0;
    while (true) {
        for (int e = 1; e <= m; ++e) {
            next[e] = prev[e - 1] + prev[e] + 1;
        }
        t++;
        if (next[m] >= n) break;
        prev.swap(next);
        fill(next.begin(), next.end(), 0);
    }


    long long reach_m_tminus1 = prev[m];
    long long reach_mminus1_tminus1 = (m >= 1 ? prev[m - 1] : 0);

    long long k_lo = max(1LL, n - reach_m_tminus1);
    long long k_hi = min(n, reach_mminus1_tminus1 + 1);

    cout << t << ' ';
    if (k_lo == k_hi) cout << k_lo << "\n";
    else cout << k_lo << '-' << k_hi << "\n";
    return 0;
}
