79_C. Beaver
After Fox Ciel got off a bus, she found that the bus she was on was a wrong bus and she lost her way in a strange town. However, she fortunately met her friend Beaver Taro and asked which way to go to her castle. Taro's response to her was a string s, and she tried to remember the string s correctly.

However, Ciel feels n strings b1, b2, ... , bn are really boring, and unfortunately she dislikes to remember a string that contains a boring substring. To make the thing worse, what she can remember is only the contiguous substring of s.

Determine the longest contiguous substring of s that does not contain any boring string, so that she can remember the longest part of Taro's response.

Input

In the first line there is a string s. The length of s will be between 1 and 105, inclusive.

In the second line there is a single integer n (1 ≤ n ≤ 10). Next n lines, there is a string bi (1 ≤ i ≤ n). Each length of bi will be between 1 and 10, inclusive.

Each character of the given strings will be either a English alphabet (both lowercase and uppercase) or a underscore ('_') or a digit. Assume that these strings are case-sensitive.

Output

Output in the first line two space-separated integers len and pos: the length of the longest contiguous substring of s that does not contain any bi, and the first position of the substring (0-indexed). The position pos must be between 0 and |s| - len inclusive, where |s| is the length of string s.

If there are several solutions, output any.

Examples

Input

Go_straight_along_this_street
5
str
long
tree
biginteger
ellipse


Output

12 4


Input

IhaveNoIdea
9
I
h
a
v
e
N
o
I
d


Output

0 0


Input

unagioisii
2
ioi
unagi


Output

5 5

Note

In the first sample, the solution is traight_alon.

In the second sample, the solution is an empty string, so the output can be «0 0», «0 1», «0 2», and so on.

In the third sample, the solution is either nagio or oisii.
```python
s, n = input(), int(input())
t = [input() for i in range(n)]

def f(i):
    global t
    for j in range(n):
        if i < j:
            if len(t[j]) < len(t[i]) and t[j] in t[i]: return False
        elif j < i and t[j] in t[i]: return False
    return True

t = [t[i] for i in range(n) if f(i)]
n = len(s)
r = [0] * n

for p in t:
    i, m = -1, len(p) - 1
    while True:
        i = s.find(p, i + 1)
        if i == -1: break
        r[i] += 1
        r[i + m] += 2

d, j, q = 0, -1, [-1]

for i in range(n):
    if r[i] & 1: q.append(i)
    if r[i] & 2:
        j = q.pop(0)
        if i - j > d: d, k = i - j, j

j = q.pop(0)
if n - j > d: d, k = n - j, j

print(d - 1, k + 1)
```