#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
const long long MOD = 1e9 + 7;
const int N = 1000005;
char ch[N];
char s[2];
int n, a, b, cnt;
void print(int ra) {
  cout << "Possible" << endl;
  int ansa = ra, ansb = ansa - n, tema, ta, temb, tb;
  if (a != 0) tema = ansa / a;
  if (a != 0) ta = ansa % a;
  if (b != 0) temb = ansb / b;
  if (b != 0) tb = ansb % b;
  for (int i = 0; i < cnt; i++)
    if (ch[i] == '?') {
      if (i > 0 && ch[i - 1] == '-') printf("%d ", temb + (tb-- > 0 ? 1 : 0));
      if ((i > 0 && ch[i - 1] == '+') || i == 0)
        printf("%d ", tema + (ta-- > 0 ? 1 : 0));
    } else
      printf("%c ", ch[i]);
  printf("%d", n);
}
int main() {
  int la, ra, lb, rb;
  while (scanf("%s", s) != -1) {
    if (s[0] == '+')
      a++;
    else if (s[0] == '-')
      b++;
    ch[cnt++] = s[0];
    if (s[0] == '=') break;
  }
  if (ch[0] == '?') a++;
  scanf("%d", &n);
  la = a;
  ra = n * a;
  lb = b + n;
  rb = n * b + n;
  if (ra < lb || rb < la) {
    cout << "Impossible" << endl;
  } else if (lb <= ra && ra <= rb)
    print(ra);
  else if (lb <= la && la <= rb)
    print(la);
  else
    print(lb);
}
