Amazing Subarrays

You are given a string S, and you have to find all the amazing substrings of S.

Amazing Substring is one that starts with a vowel (a, e, i, o, u, A, E, I, O, U).

Input

Only argument given is string S.

Output

Return a single integer X mod 10003, here X is number of Amazing Substrings in given string.

Constraints

1 <= length(S) <= 1e6
S can have special characters

Example

Input
    ABEC

Output
    6

Explanation
	Amazing substrings of given string are :
	1. A
	2. AB
	3. ABE
	4. ABEC
	5. E
	6. EC
	here number of substrings are 6 and 6 % 10003 = 6.
Solution:

Time: O(n)
Space: O(1)

public class Solution {
    public int solve(String A) {
        long sum = 0;
        for (int i = 0; i < A.length(); i ++) {
            char c = A.charAt(i);
            if (isVowel(c)) {
                sum += A.length() - i;
            }
        }
        return (int) (sum % 10003);
    }

    private boolean isVowel(char c) {
        char lower = Character.toLowerCase(c);
        if (lower == 'a' || lower == 'e' || lower == 'i' || lower == 'o' || lower == 'u') {
            return true;
        }
        return false;
    }
}