D. Substringtime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a graph with n nodes and m directed edges. One lowercase letter is assigned to each node. We define a path's value as the number of the most frequently occurring letter. For example, if letters on a path are "abaca", then the value of that path is 3. Your task is find a path whose value is the largest.InputThe first line contains two positive integers n, m (1 \leq n, m \leq 300\,000), denoting that the graph has n nodes and m directed edges.The second line contains a string s with only lowercase English letters. The i-th character is the letter assigned to the i-th node.Then m lines follow. Each line contains two integers x, y (1 \leq x, y \leq n), describing a directed edge from x to y. Note that x can be equal to y and there can be multiple edges between x and y. Also the graph can be not connected.OutputOutput a single line with a single integer denoting the largest value. If the value can be arbitrarily large, output -1 instead.ExamplesInput5 4abaca1 21 33 44 5Output3Input6 6xzyabc1 23 12 35 44 36 4Output-1Input10 14xzyzyzyzqx1 22 43 54 52 66 86 52 103 910 94 61 102 83 7Output4NoteIn the first sample, the path with largest value is 1 \to 3 \to 4 \to 5. The value is 3 because the letter 'a' appears 3 times.
Input5 4abaca1 21 33 44 5
Output3
['dfs and similar', 'dp', 'graphs', '*1700']