You are planning a small trek over at the local mountain range. It will involve walking for several days and spending the nights in a tent. The mountains are not very friendly (they're steep and rocky), and therefore many locations are not suitable for setting up a camp. You will be given a String trail which represents the locations in the order in which you are visiting them. trail[i] is '.' if it's possible to camp at the i-th location, and '^' otherwise.
You have several alternative plans to follow, given in the String plans. plans[i][j] is lowercase 'w' if according to the i-th plan you are going to walk through location j, and uppercase 'C' if you are going to camp there. A plan is invalid if it involves camping at a location that's not suitable for it.
Given trail and plans return the minimum number of nights that must be spent in the mountains, according to one of the valid plans. If all plans are invalid, return -1