#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, star = 0, que = 0;
  string s, ans;
  cin >> s >> n;
  ans = "";
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '*')
      star++;
    else if (s[i] == '?')
      que++;
  }
  if (star == 0) {
    if (n > s.size() - que || n < s.size() - 2 * que)
      cout << "Impossible";
    else {
      for (int i = 0, x = 0; i < s.size(); i++) {
        if (i + 1 < s.size() && s[i + 1] != '?' && s[i] != '?') {
          ans += s[i];
        } else if (i + 1 < s.size() && s[i + 1] == '?' &&
                   x < (s.size() - que - n)) {
          x++;
        } else if (s[i] != '?')
          ans += s[i];
      }
      cout << ans;
    }
  } else {
    if (n < s.size() - 2 * star - 2 * que)
      cout << "Impossible";
    else if (n <= s.size() - star - que) {
      for (int i = 0, x = 0; i < s.size(); i++) {
        if (s[i] == '*' || s[i] == '?')
          ;
        else if (i + 1 < s.size() && (s[i + 1] != '*' && s[i + 1] != '?')) {
          ans += s[i];
        } else if (i + 1 < s.size() && (s[i + 1] == '*' || s[i + 1] == '?') &&
                   x < (s.size() - star - que - n)) {
          x++;
        } else
          ans += s[i];
      }
      cout << ans;
    } else {
      int x = 0;
      for (int i = 0; i < s.size(); i++) {
        if (i + 1 < s.size() && s[i + 1] == '*' && x == 0) {
          int z = n - (int(s.size()) - star - que);
          for (; x <= z; x++) {
            ans += s[i];
          }
        } else if (s[i] != '*' && s[i] != '?')
          ans += s[i];
      }
      cout << ans;
    }
  }
  return 0;
}
