#include <stdio.h>

typedef unsigned long lu;

bool uslovi(lu a,lu n)
{
    if(n<3*a)
    {
        printf("-1");
        return false;
    }
    if(n==3*a)
    {
        printf("%lu %d\n",a,0);
        printf("%lu %d\n",a,0);
        printf("%lu %d\n",a,0);
        return false;
    }
    if(n%2==1&&a==2)
    {
        printf("-1");
        return false;
    }
    return true;
}
void nadjiPrviBroj(lu &n,lu a)
{
    lu prvi=a;
    lu drugi=0;
    while((n-(prvi+drugi))%4!=0)
        drugi++;
    n-=(prvi+drugi);
    if(prvi==drugi&&drugi>=1)
    {
        prvi++;
        drugi--;
    }
    if(drugi>prvi)
    {
        printf("-1");
        return;
    }
    printf("%lu %lu\n",prvi,drugi);
}
void nadjiOstalaDva(lu n,lu a)
{
    lu drugi,prvi;
    if(n/4+1>a)
    {
        printf("%lu %lu\n",n/4+1,n/4-1);
        printf("%lu %lu\n",n/4+1,n/4-1);
        return;
    }
    else
    {
        drugi=n/4-1-(a-(n/4+1));
        prvi=n/4+1+(a-(n/4+1));
    }
    if(drugi<0) printf("-1");
    else
    {
        printf("%lu %lu\n",prvi,drugi);
        printf("%lu %lu\n",prvi,drugi);
    }

}
int main()
{
    lu a,n;
    scanf("%lu%lu",&n,&a);
    if(!uslovi(a,n)) return 0;
    nadjiPrviBroj(n,a);
    nadjiOstalaDva(n,a);



    return 0;
}