#include using namespace std; typedef long long ll; #define REP(i,n) for(int i=0; i #define VLL vector #define VVI vector> #define VVLL vector> #define VC vector #define VS vector #define VVC vector> #define VB vector #define VVB vector> #define fore(i,a) for(auto &i:a) typedef pair P; template bool chmax(T &a, T b) { if (a < b) { a = b; return true; } return false; } template bool chmin(T &a, T b) { if (a > b) { a = b; return true; } return false; } const int INF = 1 << 30; const ll INFL = 1LL << 60; const ll mod = 1000000007; int main() { ll x, y, z; cin >> x >> y >> z; char sa, sb; ll ta, tb; cin >> sa >> ta >> sb >> tb; if (sa == sb) { ll ans = abs(tb - ta); if (tb < ta)swap(ta, tb); if (sa == 'A') { ans = min(ans, y + ta - tb + x); ans = min(ans, z + ta - tb + x); } else if (sa == 'B') { ans = min(ans, x + ta - tb + y); ans = min(ans, z + ta - tb + y); } else if (sa == 'C') { ans = min(ans, x + ta - tb + z); ans = min(ans, y + ta - tb + z); } cout << ans << endl; return 0; } ll a, b, c, d; a = ta; b = tb; if (sa == 'A')c = x - ta; if (sa == 'B')c = y - ta; if (sa == 'C')c = z - ta; if (sb == 'A')d = x - tb; if (sb == 'B')d = y - tb; if (sb == 'C')d = z - tb; if (sa != 'A'&&sb != 'A') { ll ans = min({ a + b - 1,c + d + 1,x + a + d,x + b + c }); cout << ans << endl; return 0; } if (sa != 'B'&&sb != 'B') { ll ans = min({ a + b - 1,c + d + 1,y + a + d,y + b + c }); cout << ans << endl; return 0; } if (sa != 'C'&&sb != 'C') { ll ans = min({ a + b - 1,c + d + 1,z + a + d,z + b + c }); cout << ans << endl; return 0; } }