#Problem : Which Books to Read
#Language : Python
#Compiled Using : py_compile
#Version : Python 2.7.1
#Input for your program will be provided from STDIN
#Print out all output from your program to STDOUT
import sys
name = raw_input ( )
D = int ( raw_input ( ) ) #degree of separation
N = int ( raw_input ( ) ) #number of links
M = int ( raw_input ( ) ) #book users
users = { }
books = { }
def build_edges( user1, user2) :
if user1 not in users:
users[ user1] = set ( [ user2, ] )
else :
users[ user1] .add ( user2)
for i in xrange ( N) :
nw = raw_input ( )
us = nw.split ( '|' )
build_edges( us[ 0 ] , us[ 1 ] )
build_edges( us[ 1 ] , us[ 0 ] )
def build_booklist( user1, book) :
if user1 not in books:
users[ user1] = [ ]
else :
users[ user1] .append ( user2)
for i in xrange ( M) :
bk = raw_input ( ) .split ( '|' )
books[ bk[ 0 ] ] = [ ]
for book in bk[ 1 :] :
books[ bk[ 0 ] ] .append ( book)
rec = [ ]
depth = [ 0 , ]
def bfs( graph, start) :
visited, queue = set ( ) , [ start]
while queue:
vertex = queue.pop ( 0 )
if vertex not in visited:
visited.add ( vertex)
for book in books[ vertex] :
if book not in books[ start] :
rec.append ( book)
queue.extend ( graph[ vertex] - visited)
depth[ 0 ] += 1
if depth[ 0 ] > D:
return
return visited
bfs( users, name)
print len ( rec)
I1Byb2JsZW0gICAgICAgIDogV2hpY2ggQm9va3MgdG8gUmVhZAojTGFuZ3VhZ2UgICAgICAgOiBQeXRob24KI0NvbXBpbGVkIFVzaW5nIDogcHlfY29tcGlsZQojVmVyc2lvbiAgICAgICAgOiBQeXRob24gMi43LjEKI0lucHV0IGZvciB5b3VyIHByb2dyYW0gd2lsbCBiZSBwcm92aWRlZCBmcm9tIFNURElOCiNQcmludCBvdXQgYWxsIG91dHB1dCBmcm9tIHlvdXIgcHJvZ3JhbSB0byBTVERPVVQKCmltcG9ydCBzeXMKCm5hbWUgPSByYXdfaW5wdXQoKQpEID0gaW50KHJhd19pbnB1dCgpKSAjZGVncmVlIG9mIHNlcGFyYXRpb24KTiA9IGludChyYXdfaW5wdXQoKSkgI251bWJlciBvZiBsaW5rcwpNID0gaW50KHJhd19pbnB1dCgpKSAjYm9vayB1c2VycwoKdXNlcnMgPSB7fQpib29rcyA9IHt9CgpkZWYgYnVpbGRfZWRnZXModXNlcjEsIHVzZXIyKToKICAgIGlmIHVzZXIxIG5vdCBpbiB1c2VyczoKICAgICAgICB1c2Vyc1t1c2VyMV0gPSBzZXQoW3VzZXIyLCBdKQogICAgZWxzZToKICAgICAgICB1c2Vyc1t1c2VyMV0uYWRkKHVzZXIyKQoKZm9yIGkgaW4geHJhbmdlKE4pOgogICAgbncgPSByYXdfaW5wdXQoKQogICAgdXMgPSBudy5zcGxpdCgnfCcpCiAgICBidWlsZF9lZGdlcyh1c1swXSwgdXNbMV0pCiAgICBidWlsZF9lZGdlcyh1c1sxXSwgdXNbMF0pCgpkZWYgYnVpbGRfYm9va2xpc3QodXNlcjEsIGJvb2spOgogICAgaWYgdXNlcjEgbm90IGluIGJvb2tzOgogICAgICAgIHVzZXJzW3VzZXIxXSA9IFtdCiAgICBlbHNlOgogICAgICAgIHVzZXJzW3VzZXIxXS5hcHBlbmQodXNlcjIpCgpmb3IgaSBpbiB4cmFuZ2UoTSk6CiAgICBiayA9IHJhd19pbnB1dCgpLnNwbGl0KCd8JykKICAgIGJvb2tzW2JrWzBdXSA9IFtdCiAgICBmb3IgYm9vayBpbiBia1sxOl06CiAgICAgICAgYm9va3NbYmtbMF1dLmFwcGVuZChib29rKQoKcmVjID0gW10KZGVwdGggPSBbMCxdCgpkZWYgYmZzKGdyYXBoLCBzdGFydCk6CiAgICB2aXNpdGVkLCBxdWV1ZSA9IHNldCgpLCBbc3RhcnRdCiAgICB3aGlsZSBxdWV1ZToKICAgICAgICB2ZXJ0ZXggPSBxdWV1ZS5wb3AoMCkKICAgICAgICBpZiB2ZXJ0ZXggbm90IGluIHZpc2l0ZWQ6CiAgICAgICAgICAgIHZpc2l0ZWQuYWRkKHZlcnRleCkKICAgICAgICAgICAgZm9yIGJvb2sgaW4gYm9va3NbdmVydGV4XToKICAgICAgICAgICAgICAgIGlmIGJvb2sgbm90IGluIGJvb2tzW3N0YXJ0XToKICAgICAgICAgICAgICAgICAgICByZWMuYXBwZW5kKGJvb2spCiAgICAgICAgICAgIHF1ZXVlLmV4dGVuZChncmFwaFt2ZXJ0ZXhdIC0gdmlzaXRlZCkKICAgICAgICBkZXB0aFswXSArPSAxCiAgICAgICAgaWYgZGVwdGhbMF0gPiBEOgogICAgICAgICAgICByZXR1cm4KICAgIHJldHVybiB2aXNpdGVkIAoKYmZzKHVzZXJzLCBuYW1lKQpwcmludCBsZW4ocmVjKQ==
stdin
QWxpY2UKMgozCjQKQWxpY2V8Qm9iCkJvYnxDYXJvbApDYXJvbHxEb24KQWxpY2V8VGhlIEhvYmJpdHxMb3JkIG9mIHRoZSBGbGllcwpCb2J8TGlmZSBvZiBQaXxBIFRhbGUgb2YgVHdvIENpdGllc3xMb3JkIG9mIHRoZSBGbGllcwpDYXJvbHxBbm5hIEthcmVuaW5hfFNvbGFyaXN8MjAwMTogQSBTcGFjZSBPZHlzc2V5CkRvbnxQbGF0byZyc3F1bztzIFJlcHVibGljfFRoZSBUd2VsdmUgQ2Flc2Fycw==
Alice
2
3
4
Alice|Bob
Bob|Carol
Carol|Don
Alice|The Hobbit|Lord of the Flies
Bob|Life of Pi|A Tale of Two Cities|Lord of the Flies
Carol|Anna Karenina|Solaris|2001: A Space Odyssey
Don|Plato’s Republic|The Twelve Caesars