#include using namespace std; #define rep(i,a,b) for(auto i = (a); i < (b); i++) #define pb push_back #define fs first #define sc second typedef long long ll; typedef pair ii; typedef vector vi; typedef vector vvi; typedef vector vii; typedef vector vvii; const double EPS = 1e-9; int main() { cin.sync_with_stdio(false); int n; cin >> n; map, int> TTS; set TYPES; rep(i,0,n) { string a,b; int cnt = 0; cin >> a >> b >> cnt; TYPES.insert(a); TTS[pair(a,b)] += cnt; } // check not possible bool can = false; for(auto a : TYPES) { string l = "left"; string r = "right"; string any = "any"; int got_l = TTS[pair(a,l)]; int got_r = TTS[pair(a,r)]; int got_any = TTS[pair(a,any)]; if(got_l + got_any > 0 && got_r > 0) can = true; if(got_l > 0 && got_r + got_any > 0) can = true; if(got_any > 1) can = true; } if(!can) { cout << "impossible" << endl; return 0; } int total = 0; for(auto a : TYPES) { string l = "left"; string r = "right"; string any = "any"; int got_l = TTS[pair(a,l)]; int got_r = TTS[pair(a,r)]; int got_any = TTS[pair(a,any)]; int mn = max(got_l, max(got_r, min(1, got_any))); total += mn; } cout << total+1 << endl; }