class RedCard: def firstError(_, info): yellow = {} for i in info: yr,time,name = i.split() if yr == "Y": if name in yellow: yellow[name].append(int(time)) else: yellow[name] = [int(time)] minError = 100 for name in yellow: if len(yellow[name]) >= 2 and ("R %02d %s"%(yellow[name][1],name) not in info): minError = min(minError, yellow[name][1]) if minError == 100: minError = -1 return minError if __name__ == "__main__": x = RedCard() print x.firstError(("Y 10 JOHNS", "Y 15 JOHNS", "Y 70 JOHNS", "R 70 JOHNS"))