import java.util.Arrays;
import java.util.Scanner;
public class TestOne {
static int[] n = new int[3];//每次取球的数目有3种选择
static int[] x = new int[5];//表示每一局初始的球数(共比赛5局)
//使用chache的目的:将之前遍历过的胜负结果存起来,对于chache[x1][1][0](表示x1个球数,me为奇数,you为偶数的比赛结果)如果出现相同的球数目x1时,可以直接获取已缓存的比赛结果
static char[][][] chache = new char[1000][2][2];//存放每一种初始球数下,两个选手的奇偶性。最多的初始球数目为1000.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(int i=0;i<3;i++) {
n[i] = sc.nextInt();
}
Arrays.sort(n);//对数组n按升序排列
for(int i=0;i<5;i++) {
x[i] = sc.nextInt();//当前局的初始球数目
char ans= f(x[i],0,0);
System.out.print(ans+" ");
}
}
/*
*num:当前球的总数目
*me:当前取球对象的奇偶性
*you:下一个取球对象的奇偶性
* */
private static char f(int num, int me, int you) {
//1.不够取
if(num<n[0]) {//球的数目小于可取球的最小数目
if(me==1&&you==0) return '+';
else if(me==0&&you==1) return '-';
else return '0';
}
//2.
if(chache[num][me][you]!='\0') return chache[num][me][you];//当前数目的比赛结果在chache种存在,直接输出
boolean ping = false;//记录当前情况是否存在对手输的情况
for(int i=0;i<3;i++) {
if(num>=n[i]) {
char ans = f(num-n[i],you,(me+n[i])%2);//对手是输
if(ans=='-') {
chache[num][me][you]='+'; //将当前球数num对应的比赛结果存放起来
return '+';
}
if(ans=='0') {
chache[num][me][you]='0';
ping = true;
}
}//if
}//for
if(ping) {//出现平局
return '0';
}else {//输
chache[num][me][you]='-';
return '-';
}
}
}