Let us call a pair of integer numbers *m*-perfect, if at least one number in the pair is greater than or equal to *m*. Thus, the pairs (3, 3) and (0, 2) are 2-perfect while the pair (-1, 1) is not.

Two integers *x*, *y* are written on the blackboard. It is allowed to erase one of them and replace it with the sum of the numbers, (*x* + *y*).

What is the minimum number of such operations one has to perform in order to make the given pair of integers *m*-perfect?
Single line of the input contains three integers *x*, *y* and *m* ( - 10<sup class="upper-index">18</sup> ≤ *x*, *y*, *m* ≤ 10<sup class="upper-index">18</sup>).

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preffered to use the cin, cout streams or the %I64d specifier.
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <typeinfo>

using namespace std;

int main() {
	int a, b;
	cin >> a >> b;
	string s;
	cin >> s;
	int c = s.size();
	int xb[100], yb[100];
	int x = 0, y = 0;
	for (int i = 0; i < c; i++) {
		switch (s[i]) {
			case 'U':
				y++;
				break;
			case 'D':
				y--;
				break;
			case 'L':
				x--;
				break;
			case 'R':
				x++;
				break;
		}
		xb[i] = x;
		yb[i] = y;
	}
	int xr = xb[c-1], yr = yb[c-1];
	for (int i = 0; i < c; i++) {
		int xu = a - xb[i];
		int yu = b - yb[i];
		int resx, resy;
		if (xr == 0) {
			resx = xu;
		} else {
			resx = xu % xr;			
		}
		if (yr == 0 && yu != 0) {
			resy = yu;
		} else {
			resy = yu % yr;
		}
		if (resx == 0 && resy == 0) {
			if (xr * yu == xu * yr) {
				printf("Yes\n");
				return 0;
			}
		}
	}
	printf("No\n");
	return 0;
}