#include <bits/stdc++.h>
using namespace std;
char s[1000];
int cnt[2];
int mn[2], mx[2];
int num[2][1000];
int ncnt[2];
int main() {
  int i, n;
  gets(s);
  for (i = 0; s[i * 4 + 2] != '='; i++) cnt[s[i * 4 + 2] == '-']++;
  cnt[0]++;
  sscanf(s + i * 4 + 2 + 1, "%d", &n);
  mn[0] = cnt[0];
  mn[1] = cnt[1];
  mx[0] = cnt[0] * n;
  mx[1] = cnt[1] * n;
  if (mn[0] - mx[1] <= n && n <= mx[0] - mn[1]) {
    puts("Possible");
    int rem = n - (mn[0] - mx[1]);
    for (int j = 0; j < cnt[0]; j++) num[0][j] = 1;
    for (int j = 0; j < cnt[1]; j++) num[1][j] = n;
    while (rem > 0) {
      if (ncnt[0] < cnt[0]) {
        num[0][ncnt[0]] = 1 + min(n - 1, rem);
        rem -= num[0][ncnt[0]] - 1;
        ncnt[0]++;
      } else {
        num[1][ncnt[1]] = n - min(n - 1, rem);
        rem -= n - num[1][ncnt[1]];
        ncnt[1]++;
      }
    }
    ncnt[0] = ncnt[1] = 0;
    printf("%d ", num[0][ncnt[0]++]);
    for (int j = 1; j < cnt[0] + cnt[1]; j++) {
      if (s[j * 4 - 2] == '+') {
        printf("+ %d ", num[0][ncnt[0]++]);
      } else
        printf("- %d ", num[1][ncnt[1]++]);
    }
    printf("= %d\n", n);
  } else {
    puts("Impossible");
  }
}
