Problem S2: Jerseys

A school team is trying to assign jerseys numbered 1, 2, 3, …, J to student athletes. The size of each jersey is either small (S), medium (M) or large (L).

Each athlete has requested a specific jersey number and a preferred size. The athletes will not be satisfied with a jersey that is the wrong number or that is smaller than their preferred size. They will be satisfied with a jersey that is their preferred size or larger as long as it is the right number. Two students cannot be given the same jersey.

Your task is to determine the maximum number of requests that can be satisfied.

Input

The first line of input is the integer J which is the number of jerseys.
The second line of input is the integer A which is the number of athletes.
The next J lines are each the characters S, M or L. Line j gives the size of jersey j (1 ≤ jJ).
The last A lines are each the character S, M or L followed by a space followed by an integer. Line a (1 ≤ aA) gives the requested size and jersey number for athlete a where the athletes are numbered 1, 2, 3, …, A.

For 50% of the test cases, 1 ≤ J ≤ 103 and 1 ≤ A ≤ 103.
For the remaining 50% of the test cases, 1 ≤ J ≤ 106 and 1 ≤ A ≤ 106.

Output

The output will consist of a single integer which is the maximum number of requests that can be satisfied.

```4
3
M
S
S
L
L 3
S 3
L 1
```

```1
```

Explanation

Jersey 1 cannot be assigned because it is medium and athlete 3 requested large. No athlete requested jersey 2 or 4. Jersey 3 (small) can be assigned to athlete 2 (small), but not athlete 1 (large).

Point Value: 5 (partial)
Time Limit: 2.00s
Memory Limit: 256M

Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3

• (2/0)
Hardcoding again

• (4/0)
I've removed a number of the aforementioned user's submissions (on the order of 10^2).

• (7/0)
Sometimes, it makes me wonder how far computer science has gone.

• (0/5)
Any suggestions as to why my code is outputting error messages?
I could have sworn my code worked before for this question

• (1/4)
``Traceback (most recent call last):   File "a.out", line 8, in <module>     jersey.append(ord(js))  TypeError: ord() expected a character, but string of length 2 found``