/*
int leap(int a)
{
if(a%400==0){
return 29;
}
else if(a%100==0){
return 28;
}
else if(a%4==0){
return 29;
}
else{
return 28;
}
}
long long int month(long long int a,long long int b)
{
switch(a)
{
case 2:return leap(b);
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
default:return 30;
}
}
int main()
{
long long int n,o,k,i,end,a=0,p=0;
long long int y=2023,m=1,d=1;
scanf("%lld",&k);
scanf("%lld %lld",&n,&o);
a=n;
p=o;
//printf("%d//%d %d\n",d,a,p);
for(i=1;;i++){
d++;
if(d>month(m,y)){
m++;
d=1;
}
if(m>12){
y++;
m=1;
}
if(a+p>=k){
break;
}
if(i%2==0){
a=a+n;
}
if(i%3==0){
p=p+o;
}
// printf("%d//%d %d\n",d,a,p);
}
if(i%2==1){
d++;
if(d>month(m,y)){
m++;
d=1;
}
if(m>12){
y++;
m=1;
}
printf("%lld/%02lld/%02lld",y,m,d);
}
else{
//d++
if(d>month(m,y)){
m++;
d=1;
}
if(m>12){
y++;
m=1;
}
//d++;
if(d>month(m,y)){
m++;
d=1;
}
if(m>12){
y++;
m=1;
}
printf("%lld/%02lld/%02lld",y,m,d);
}
return 0;
}
#include <stdio.h>
int main()
{
printf("10");
return 0;
}
*/
#include <stdio.h>
long long int min=100001;
long long int arr[4];
void sort()
{
int tem;
for(int i=1;i<3;i++){
for(int j=1;j<=3-i;j++){
if(arr[j]>arr[j+1]){
tem=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tem;
}
}
}
return ;
}
void dfs(int a,int b)
{
if(a=0){
if(b<min){
return b;
}
else{
return min;
}
}
else if(a/arr[1]!=0){
return min;
}
dfs(a%)
}
int main()
{
long long int n,o,r,ans=0;
scanf("%lld",&n);
scanf("%lld",&o);
for(int i=1;i<=3;i++){
scanf("%d",&arr[i]);
}
sort();
r=n-o;
for(int i=3;i>=1;i--){
printf("%d ",arr[i]);
ans=ans+r/arr[i];
r=r%arr[i];
}
if(r==0){
printf("%lld",ans);
}
else{
printf("-1");
}
return 0;
}