//0-1背包
//给定一个数20,再给定几个数字1 3 5 7 8
//sample output 1 3 5 7 8
// 0 0 1 1 1 因为5+7+8=20
#include <stdio.h>
#include <string.h>
int a[50];
bool f[50] = {0};
int find(int w,int s){
if(w==0) return 1;
if(w<0 || w>0 && s==0) return 0;
if(find(w-a[s-1],s-1)){
f[s-1] = 1;
return 1;
}
return find(w,s-1);
}
int main(){
int n,m,i;
scanf("%d %d",&n,&m);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
if(find(n,m)){
for(i=0;i<m;i++)
printf("%d ",f[i]);
printf("\n");
}
else
printf("NO\n");
return 0;
}
//给定一个数20,再给定几个数字1 3 5 7 8
//sample output 1 3 5 7 8
// 0 0 1 1 1 因为5+7+8=20
#include <stdio.h>
#include <string.h>
int a[50];
bool f[50] = {0};
int find(int w,int s){
if(w==0) return 1;
if(w<0 || w>0 && s==0) return 0;
if(find(w-a[s-1],s-1)){
f[s-1] = 1;
return 1;
}
return find(w,s-1);
}
int main(){
int n,m,i;
scanf("%d %d",&n,&m);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
if(find(n,m)){
for(i=0;i<m;i++)
printf("%d ",f[i]);
printf("\n");
}
else
printf("NO\n");
return 0;
}