Task4: Use R.Rachev board representation
Task4: use elif instead if
Task2: rename fields
Task2: return in case no args
Task2: use while in zip_with function
Task2: Handle base case with cashe_size=0