#include <bits/stdc++.h>
using namespace std;
long long poww(int a, int b) {
  long long sum = 1;
  for (int i = 0; i < b; i++) sum *= a;
  return sum;
}
string s;
long long n, alamat = 1, mos, man, halat;
vector<long long> v;
int main() {
  getline(cin, s);
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == ' ' || s[i] == '=') continue;
    if (s[i] == '+') {
      alamat = 1;
      continue;
    }
    if (s[i] == '-') {
      alamat = 0;
      continue;
    }
    if (s[i] == '?') {
      if (alamat == 1)
        mos++;
      else
        man++;
      continue;
    }
    v.push_back(int(s[i]) - 48);
  }
  for (int i = 0; i < v.size(); i++) {
    n += poww(10, v.size() - 1 - i) * v[i];
  }
  if (n == 0) {
    cout << "Impossible";
    return 0;
  }
  long long total = n + man - mos;
  if (total > 0) {
    halat = 1;
    alamat = 1;
    for (int i = 0; i < s.size(); i++) {
      if (s[i] == ' ' || s[i] == '=') {
        continue;
      }
      if (s[i] == '+') {
        alamat = 1;
        continue;
      }
      if (s[i] == '-') {
        alamat = 0;
        continue;
      }
      if (s[i] == '?') {
        if (alamat == 1) {
          if (total > 0) {
            if (total >= n - 1) {
              total -= n - 1;
              continue;
            }
            total = 0;
            continue;
          }
          continue;
        }
        if (alamat == 0) continue;
      }
    }
    if (total) {
      cout << "Impossible";
      return 0;
    }
  }
  total = n + man - mos;
  if (total < 0) {
    total = abs(total);
    alamat = 1;
    for (int i = 0; i < s.size(); i++) {
      if (s[i] == ' ' || s[i] == '=') {
        continue;
      }
      if (s[i] == '+') {
        alamat = 1;
        continue;
      }
      if (s[i] == '-') {
        alamat = 0;
        continue;
      }
      if (s[i] == '?') {
        if (alamat == 0) {
          if (total > 0) {
            if (total >= n - 1) {
              total -= n - 1;
              continue;
            }
            total = 0;
            continue;
          }
          continue;
        }
        if (alamat == 1) continue;
      }
    }
    if (total) {
      cout << "Impossible";
      return 0;
    }
  }
  cout << "Possible" << endl;
  if (halat == 1) {
    total = n + man - mos;
    alamat = 1;
    for (int i = 0; i < s.size(); i++) {
      if (s[i] == ' ' || s[i] == '=') {
        cout << s[i];
        continue;
      }
      if (s[i] == '+') {
        cout << s[i];
        alamat = 1;
        continue;
      }
      if (s[i] == '-') {
        cout << s[i];
        alamat = 0;
        continue;
      }
      if (s[i] == '?') {
        if (alamat == 1) {
          if (total > 0) {
            if (total >= n - 1) {
              cout << n;
              total -= n - 1;
              continue;
            }
            cout << total + 1;
            total = 0;
            continue;
          }
          cout << 1;
          continue;
        }
        if (alamat == 0) cout << 1;
        continue;
      }
      cout << s[i];
    }
  }
  if (halat == 0) {
    total = n + man - mos;
    alamat = 1;
    total = abs(total);
    for (int i = 0; i < s.size(); i++) {
      if (s[i] == ' ' || s[i] == '=') {
        cout << s[i];
        continue;
      }
      if (s[i] == '+') {
        cout << s[i];
        alamat = 1;
        continue;
      }
      if (s[i] == '-') {
        cout << s[i];
        alamat = 0;
        continue;
      }
      if (s[i] == '?') {
        if (alamat == 0) {
          if (total > 0) {
            if (total >= n - 1) {
              cout << n;
              total -= n - 1;
              continue;
            }
            cout << total + 1;
            total = 0;
            continue;
          }
          cout << 1;
          continue;
        }
        if (alamat == 1) cout << 1;
        continue;
      }
      cout << s[i];
    }
  }
}
