from collections import deque
import sys, os, io
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
def topological_sort():
g = []
q = deque()
cnt = [0] * (n + 1)
for i in range(1, n + 1):
for j in G[i]:
cnt[j] += 1
for i in range(1, n + 1):
if not cnt[i]:
q.append(i)
while q:
i = q.popleft()
g.append(i)
for j in G[i]:
cnt[j] -= 1
if not cnt[j]:
q.append(j)
return g
n, m, k = map(int, input().split())
x = [1]
for _ in range(k - 1):
x.append(27 * x[-1])
d = dict()
for v in range(1, n + 1):
s = list(input().rstrip())
u = 0
for i, j in zip(x, s):
u += i * max(0, j - 96)
d[u] = v
pow2 = [1]
for _ in range(k):
pow2.append(2 * pow2[-1])
l = pow2[k]
G = [[] for _ in range(n + 1)]
for _ in range(m):
s, mt = input().rstrip().split()
v = set()
s, mt = list(s), int(mt)
for i in range(l):
u = 0
for j in range(k):
if i & pow2[j]:
u += x[j] * (s[j] - 96)
if u in d:
v.add(d[u])
if not mt in v:
ans = "NO"
print(ans)
exit()
for i in v:
if i ^ mt:
G[mt].append(i)
p = topological_sort()
ans = "YES" if not len(p) ^ n else "NO"
print(ans)
if ans == "YES":
sys.stdout.write(" ".join(map(str, p)))
1351. Count Negative Numbers in a Sorted Matrix | 617. Merge Two Binary Trees |
1450. Number of Students Doing Homework at a Given Time | 700. Search in a Binary Search Tree |
590. N-ary Tree Postorder Traversal | 589. N-ary Tree Preorder Traversal |
1299. Replace Elements with Greatest Element on Right Side | 1768. Merge Strings Alternately |
561. Array Partition I | 1374. Generate a String With Characters That Have Odd Counts |
1822. Sign of the Product of an Array | 1464. Maximum Product of Two Elements in an Array |
1323. Maximum 69 Number | 832. Flipping an Image |
1295. Find Numbers with Even Number of Digits | 1704. Determine if String Halves Are Alike |
1732. Find the Highest Altitude | 709. To Lower Case |
1688. Count of Matches in Tournament | 1684. Count the Number of Consistent Strings |
1588. Sum of All Odd Length Subarrays | 1662. Check If Two String Arrays are Equivalent |
1832. Check if the Sentence Is Pangram | 1678. Goal Parser Interpretation |
1389. Create Target Array in the Given Order | 1313. Decompress Run-Length Encoded List |
1281. Subtract the Product and Sum of Digits of an Integer | 1342. Number of Steps to Reduce a Number to Zero |
1528. Shuffle String | 1365. How Many Numbers Are Smaller Than the Current Number |