#include using namespace std; #pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #define rep(i,a,b) for(int i=a;i=b;i--) #define all(a) begin(a),end(a) #define allr(a) rbegin(a),rend(a) #define UNIQUE(x) sort(all(x)), x.erase(unique(all(x)), x.end()) using ll =long long; using pii = pair; using pll = pair; using vi= vector; using vll =vector; using vvi = vector>; inline bool ingrid(int a,int b,int h,int w){ return 0<=a&&a inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } int popcount(int t){return __builtin_popcount(t);} int popcount(ll t){return __builtin_popcountll(t);} struct Edge{ int from,to;ll cost;int idx; Edge()=default; Edge(int from,int to,ll cost=1,int idx=-1):from(from),to(to),cost(cost),idx(idx){} operator int() const {return to;} }; constexpr pii dx4[4]={{0,1},{0,-1},{1,0},{-1,0}}; constexpr pii dx[100]={}; #define endl '\n' void solve(){ string s;cin>>s; int n=s.size(); int flag=0; rep(i,0,n){ if(s[i]=='+'){ flag=0; }else if(s[i]=='-'){ flag=1; }else if(s[i]=='?'){ if(flag==0){ //正 s[i]='9'; }else{ //負 if(s[i-1]!='-'&&i!=n-1&&s[i+1]!='-'&&s[i+1]!='+'){ flag=0; s[i]='+'; }else{ s[i]='1'; } } } } cout<>t; while(t--){ solve(); } return 0; } /* ?を+にしてもよい.. */