Problem:
Score : 100 points

Problem Statement

We have A balls with the string S written on each of them and B balls with the string T written on each of them.

From these balls, Takahashi chooses one with the string U written on it and throws it away.

Find the number of balls with the string S and balls with the string T that we have now.

Constraints

S, T, and U are strings consisting of lowercase English letters.

The lengths of S and T are each between 1 and 10 (inclusive).

S \not= T

S=U or T=U.

1 \leq A,B \leq 10

A and B are integers.

Input

Input is given from Standard Input in the following format:

S T
A B
U

Output

Print the answer, with space in between.

Sample Input 1

red blue
3 4
red

Sample Output 1

2 4

Takahashi chose a ball with red written on it and threw it away.
Now we have two balls with the string S and four balls with the string T.

Sample Input 2

red blue
5 5
blue

Sample Output 2

5 4

Takahashi chose a ball with blue written on it and threw it away.
Now we have five balls with the string S and four balls with the string T.

Solution in C# (Mono 4.6.2.0) (judge verdict: Runtime Error)

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Numerics;

internal static class CR
{
    public static string Get() { return Console.ReadLine(); }
    public static IEnumerable<string> GetTexts() { return Console.ReadLine().Split(' '); }
    public static int GetInteger() { return int.Parse(Console.ReadLine()); }
    public static IEnumerable<int> GetIntegers() { return Console.ReadLine().Split(' ').Select(x => int.Parse(x)); }
}

namespace AtCoder.D
{
    public class Program
    {
        public static int N { get; private set; }
        public static int K { get; private set; }
        public static List<int> P { get; private set; }

        public static void Main() { var r = GetResult(); Debug.WriteLine(r); Console.Write(r); }

        private static object GetResult()
        {
            var inputs = CR.GetIntegers().ToList();
            N = inputs[0];
            K = inputs[1];
            P = CR.GetIntegers().ToList();

            var dicKitaichi = Enumerable.Range(1, 1000).ToDictionary(x => x, y => (double)Enumerable.Range(1, y).Sum() / y);
            if (N == K)
            {
                return Enumerable.Range(0, K).Sum(x => dicKitaichi[P[x]]);
            }

            BigInteger pSumMax = Enumerable.Range(0, K).Sum(i => P[i]);
            var pSumMax_StartIndex = 0;

            BigInteger currentPSum = pSumMax;

            for (int i = 0; i < P.Count - K; i++)
            {
                currentPSum -= P[i];
                currentPSum += P[i + K];
                if (P[i] <= P[i + K])
                {
                    pSumMax_StartIndex = i + 1;
                    pSumMax = currentPSum;
                }
            }

            var max = Enumerable.Range(pSumMax_StartIndex, K).Sum(x => dicKitaichi[P[x]]);

            return max;
        }
    }
}