#include using namespace std; typedef long long ll; #define rep(i,n) for(ll i = 0;i<((ll)(n));i++) #define reg(i,a,b) for(ll i = ((ll)(a));i<=((ll)(b));i++) #define irep(i,n) for(ll i = ((ll)(n)-1);i>=0;i--) #define ireg(i,a,b) for(ll i = ((ll)(b));i>=((ll)(a));i--) /* */ void dijkstra(int root,vector& d,vector v[],vector c[],ll INF=1e18){ queue Q; rep(i,d.size())d[i]=INF; d[root]=0; Q.push(root); while(!Q.empty()){ int p = Q.front();Q.pop(); // cerr<d[p]+cost){ d[q]=d[p]+cost; Q.push(q); } } } } ll x,y,z,t[2],ans=1e18; vector v[10],c[10],d(10); char s[2]; void init(){ cin>>x>>y>>z; rep(i,2)cin>>s[i]>>t[i]; if(t[0]>t[1]){ swap(t[0],t[1]); swap(s[0],s[1]); } // if(t[0]<=x){ v[0].push_back(1); c[0].push_back(2*t[0]-1); v[1].push_back(0); c[1].push_back(2*t[0]-1); if(t[1]<=x){ v[1].push_back(2); v[2].push_back(1); c[1].push_back(2*(t[1]-t[0])); c[2].push_back(2*(t[1]-t[0])); v[2].push_back(7); v[7].push_back(2); c[2].push_back(2*(x-t[1])+1); c[7].push_back(2*(x-t[1])+1); }else{ v[1].push_back(7); v[7].push_back(1); c[1].push_back(2*(x-t[0])+1); c[7].push_back(2*(x-t[0])+1); } }else{ v[0].push_back(7); c[0].push_back(2*x+1); v[7].push_back(0); c[7].push_back(2*x+1); } // if(t[0]<=y){ v[0].push_back(3); c[0].push_back(2*t[0]-1); v[3].push_back(0); c[3].push_back(2*t[0]-1); if(t[1]<=y){ v[3].push_back(4); v[4].push_back(3); c[3].push_back(2*(t[1]-t[0])); c[4].push_back(2*(t[1]-t[0])); v[4].push_back(7); v[7].push_back(4); c[4].push_back(2*(y-t[1])+1); c[7].push_back(2*(y-t[1])+1); }else{ v[3].push_back(7); v[7].push_back(3); c[3].push_back(2*(y-t[0])+1); c[7].push_back(2*(y-t[0])+1); } }else{ v[0].push_back(7); c[0].push_back(2*y+1); v[7].push_back(0); c[7].push_back(2*y+1); } // if(t[0]<=z){ v[0].push_back(5); c[0].push_back(2*t[0]-1); v[5].push_back(0); c[5].push_back(2*t[0]-1); if(t[1]<=z){ v[5].push_back(6); v[6].push_back(5); c[5].push_back(2*(t[1]-t[0])); c[6].push_back(2*(t[1]-t[0])); v[6].push_back(7); v[7].push_back(6); c[6].push_back(2*(z-t[1])+1); c[7].push_back(2*(z-t[1])+1); }else{ v[5].push_back(7); v[7].push_back(5); c[5].push_back(2*(z-t[0])+1); c[7].push_back(2*(z-t[0])+1); } }else{ v[0].push_back(7); c[0].push_back(2*z+1); v[7].push_back(0); c[7].push_back(2*z+1); } } int main(void){ init(); ll root = (s[0]-'A')*2+1; dijkstra(root,d,v,c); cout<