#include <bits/stdc++.h>
using namespace std;
const int mod = (int)1e9;
const int inf = (int)1e9;
const int base = 1000 * 1000 * 1000;
const int maxn = 2005;
const long double pi = acosl(-1.0);
const long double eps = 1e-9;
vector<int> ans;
int n, t;
void out() {
  cout << "Impossible";
  exit(0);
}
void solve() {
  char c;
  string s = "";
  while (scanf(" %c", &c) == 1) {
    if (c == '=') break;
    if (c == ' ' || c == '?') continue;
    s += c;
  }
  cin >> t;
  n = t;
  int mun = 0, plus = 0;
  s = "+" + s;
  for (int i = 0; i < (int)s.size(); i++) {
    if (s[i] == '-')
      mun++;
    else
      plus++;
  }
  n = 0;
  if (mun == plus && plus * (t - 1) < t) out();
  if (mun > plus && mun + t > plus * t) out();
  if (plus > mun && plus - 1 > (mun + 1) * t) out();
  for (int i = 0; i < (int)s.size(); i++) {
    if (s[i] == '+')
      ans.push_back(1), n++;
    else
      ans.push_back(1), n--;
  }
  for (int i = 0; i < (int)s.size(); i++)
    if (n != t) {
      if (s[i] == '+' && n < t) {
        int del = min(t - 1, t - n);
        ans[i] += del;
        n += del;
      }
      if (s[i] == '-' && n > t) {
        int del = min(t - 1, n - t);
        ans[i] += del;
        n -= del;
      }
    }
  cout << "Possible" << endl << ans.front() << ' ';
  for (int i = 1; i < (int)ans.size(); i++) {
    cout << s[i] << ' ' << ans[i] << ' ';
  }
  cout << "= " << t;
}
int main() {
  solve();
  return 0;
}
