PolandBall and Game

PolandBall is playing a game with EnemyBall. The rules are simple. Players have to say words in turns. You cannot say a word which was already said. PolandBall starts. The Ball which can’t say a new word loses.

You’re given two lists of words familiar to PolandBall and EnemyBall. Can you determine who wins the game, if both play optimally?

Input

The first input line contains two integers n and m (1 ≤ n, m ≤ 103) — number of words PolandBall and EnemyBall know, respectively.

Then n strings follow, one per line — words familiar to PolandBall.

Then m strings follow, one per line — words familiar to EnemyBall.

Note that one Ball cannot know a word more than once (strings are unique), but some words can be known by both players.

Each word is non-empty and consists of no more than 500 lowercase English alphabet letters.

Output

In a single line of print the answer — “YES” if PolandBall wins and “NO” otherwise. Both Balls play optimally.

Examples

input

5 1
polandball
is
a
cool
character
nope

output

YES

input

2 2
kremowka
wadowicka
kremowka
wiedenska

output

YES

input

1 2
a
a
b

output

NO

Note

In the first example PolandBall knows much more words and wins effortlessly.

In the second example if PolandBall says kremowka first, then EnemyBall cannot use that word anymore. EnemyBall can only say wiedenska. PolandBall says wadowicka and wins.

Solution:

#include <bits/stdc++.h>

using namespace std;

const int N = 1234567;

string a[N];

char foo[N];

void get(string &s) {
scanf("%s", foo);
s = "";
for (int j = 0; foo[j]; j++) {
s += foo[j];
}
}

int main() {
int n, m;
scanf("%d %d", &n, &m);
for (int i = 0; i < n + m; i++) {
    get(a[i]);
  }
  sort(a, a + n + m);
  int common = 0;
  for (int i = 0; i < n + m - 1; i++) {
    if (a[i] == a[i + 1]) {
      common++;
    }
  }
  n -= common;
  m -= common;
  for (int it = 0; ; it++) {
    if (it % 2 == 0) {
      if (common > 0) common--; else
if (n > 0) n--; else {
puts("NO");
break;
}
} else {
if (common > 0) common--; else
if (m > 0) m--; else {
puts("YES");
break;
}
}
}
return 0;
}