#include <stdio.h>
#include <string.h>

#define NUM 6561 // 3^8
const char kigou[] = {'+','-','*'};

void print(int en[8])
{
    int i;
    for (i = 0; i < 8; i++)
        printf("%1d%1c", i+1,kigou[en[i]]);
    printf("9=100\n");
}

void eval(int en[8])
{
    int num[9] = {1,2,3,4,5,6,7,8,9};
    int i, pm, sum;
    for (i = 0; i < 8; i++) {
        if (en[i] == 2) {
            num[i+1] = num[i] * num[i+1];
            num[i] = 0;
        }
    }
    for (i = 0; i < 8; i++) {
        if (num[i] != 0) {
            sum = num[i];
            break;
        }
    }
    for (; i < 8; i++) {
        if (en[i] == 0) {
            pm = 1;
        } else if (en[i] == 1) {
            pm = -1;
        }
        sum += num[i+1] * pm;
    }
    if (sum == 100) {
        print(en);
    }
}
void form(int en[8], int num)
{
    int i;
    for (i = 0; i < 8; i++) {
        int y = num / 3;
        en[i] = num % 3;
        num = y;
    }
}

int main()
{
    int en[8];
    int i;
    for (i=0; i<NUM; i++) {
        memset(en, 0, sizeof(en));
        form(en,i);
        eval(en);
    }
    return 0;
}
