static void Main(string[] args)
int startHome, endHome, locATree, locOTree, sizeA, sizeO;
GetValues(out startHome, out endHome);
GetValues(out locATree, out locOTree);
GetValues(out sizeA, out sizeO);
int[] apples = Array.ConvertAll(Console.ReadLine().Split(" "), s => int.Parse(s));
int[] oranges = Array.ConvertAll(Console.ReadLine().Split(" "), s => int.Parse(s));
if (CheckFirstConstraints(startHome, endHome, locATree, locOTree, sizeA, sizeO))
if (CheckSecondConstraints(apples.Concat(oranges).ToArray()))
Calculate(startHome, endHome, locATree, apples);
Calculate(startHome, endHome, locOTree, oranges);
private static void Calculate(int startHome, int endHome, int locATree, int[] apples)
for (int i = 0; i < apples.Length; i++)
int result = locATree + apples[i];
if (result >= startHome && result <= endHome)
Console.WriteLine(appleCount);
private static void GetValues(out int first, out int second)
string[] value = Console.ReadLine().Split(" ");
first = int.Parse(value[0]);
second = int.Parse(value[1]);
private static bool CheckFirstConstraints(params int[] values)
foreach (var item in values)
if (item < 1 && item > Math.Pow(10, 5))
private static bool CheckSecondConstraints(params int[] values)
foreach (var item in values)
if (item < Math.Pow(-10, 5) && item > Math.Pow(10, 5))