sep = "---> "
input = """
NP---> N_NNP
NP---> N_NN_S_NU
NP---> N_NNP
NP---> N_NNP
VGF---> V_VM_VF
NP---> N_NN
"""
formatted = [x.strip().split(sep) for x in input.split("\n") if len(x.strip()) > 0]
output = {}
prev_index,prev_key = 0,None
for index,items in enumerate(formatted):
prev_index = index if prev_key != items[0] else prev_index
prev_key = items[0]
output.setdefault("{0}_{1}".format(prev_key,prev_index),[]).append(items[1])
print("output is......")
for key,result in output.iteritems():
print("{0}{1}{2}".format(key.split("_")[0],sep," ".join(result)))
c2VwID0gIi0tLT4gICIKCmlucHV0ID0gIiIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5QLS0tPiAgTl9OTlAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5QLS0tPiAgTl9OTl9TX05VICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5QLS0tPiAgTl9OTlAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5QLS0tPiAgTl9OTlAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClZHRi0tLT4gIFZfVk1fVkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5QLS0tPiAgTl9OTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiIiIgoKZm9ybWF0dGVkID0gW3guc3RyaXAoKS5zcGxpdChzZXApIGZvciB4IGluIGlucHV0LnNwbGl0KCJcbiIpIGlmIGxlbih4LnN0cmlwKCkpID4gMF0KCm91dHB1dCA9IHt9CnByZXZfaW5kZXgscHJldl9rZXkgPSAwLE5vbmUKZm9yIGluZGV4LGl0ZW1zIGluIGVudW1lcmF0ZShmb3JtYXR0ZWQpOgogICAgcHJldl9pbmRleCA9IGluZGV4IGlmIHByZXZfa2V5ICE9IGl0ZW1zWzBdIGVsc2UgcHJldl9pbmRleAogICAgcHJldl9rZXkgPSBpdGVtc1swXQogICAgb3V0cHV0LnNldGRlZmF1bHQoInswfV97MX0iLmZvcm1hdChwcmV2X2tleSxwcmV2X2luZGV4KSxbXSkuYXBwZW5kKGl0ZW1zWzFdKQoKcHJpbnQoIm91dHB1dCBpcy4uLi4uLiIpCmZvciBrZXkscmVzdWx0IGluIG91dHB1dC5pdGVyaXRlbXMoKToKICAgIHByaW50KCJ7MH17MX17Mn0iLmZvcm1hdChrZXkuc3BsaXQoIl8iKVswXSxzZXAsIiAiLmpvaW4ocmVzdWx0KSkp