#include <bits/stdc++.h>

using namespace std;

#define int ll
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<double> vd;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<pi> vp;
typedef vector<pl> vpl;

void no(){
    cout << "-1\n";
    exit(0);
}

struct s{
    int a;
    int b;
};

void stampaj(vector<s> a){

    for (int i = 0; i < 3; ++i)
        cout << a[i].a << ' ' << a[i].b << '\n';

    exit(0);
}

signed main()
{
    ios_base::sync_with_stdio(false); 
    cin.tie(nullptr); 
    cout.tie(nullptr); 
    cerr.tie(nullptr);    

    int n, x;
    cin >> n >> x;

    if (n < 3 * x)
        no();

    if (n % 2 == 1 && x == 2)
        no();

    //ako nisam blesav, moze uvek u tri seta?
    //a sigurno moze prvi uvek da odere drugog
    vector<s> a(3);
    a[0].a = x;
    a[0].b = 0;

    a[1].a = x;
    a[1].b = 0;

    a[2].a = x;
    a[2].b = 0;

    n -= 3 * x;
    if (!n) stampaj(a);

    for (int i = 0; i < 3; ++i){
        a[i].b += min(x - 2, n);
        n -= min(x - 2, n);
    }

    if (!n) stampaj(a);

    int t = 0;
    if (n % 2){
        ++n;
        a[0].b--;
        t = 1;
    }

    a[2].a += (n / 2);
    a[2].b += n / 2;

    stampaj(a);
}