#! /usr/bin/python

import sys, os, string, getopt, re


#some default definitions
colours = {	
			'none'		:	"",
			'default'	:	"\033[0m",
			'bold'		:	"\033[1m",
			'underline'	:	"\033[4m",
			'blink'		:	"\033[5m",
			'reverse'	:	"\033[7m",
			'concealed'	:	"\033[8m",

			'black'		:	"\033[30m", 
			'red'		:	"\033[31m",
			'green'		:	"\033[32m",
			'yellow'	:	"\033[33m",
			'blue'		:	"\033[34m",
			'magenta'	:	"\033[35m",
			'cyan'		:	"\033[36m",
			'white'		:	"\033[37m",

			'on_black'		:	"\033[40m", 
			'on_red'		:	"\033[41m",
			'on_green'		:	"\033[42m",
			'on_yellow'		:	"\033[43m",
			'on_blue'		:	"\033[44m",
			'on_magenta'	:	"\033[45m",
			'on_cyan'		:	"\033[46m",
			'on_white'		:	"\033[47m",

			'beep'		:	"\007"
			}


conffilepath = [os.environ['HOME']+"/.grc/", "/usr/local/share/grc/", "/usr/share/grc/", ""]
for i in conffilepath:
	if os.path.isfile(i+sys.argv[1]):
		conffile = i+sys.argv[1]
		break
regexplist = []

f = open(conffile, "r")
while 1:
	l = f.readline()
	if l == "" :
		break
	if l[0] == "#" or l[0] == '\012':
		continue
	colourlist = string.split(f.readline()[:-1])
	c = ""
	for i in colourlist :
		c = c + colours[i]
	cs = f.readline()[:-1]
	regexplist.append((re.compile(l[:-1]), c, cs))


f = sys.stdin
while 1:
	l = f.readline()
	if l == "" :
		break
	line = l[:-1]
	clist = []
	for pattern in regexplist:
		pos = 0
		while 1:
			m = pattern[0].search(line, pos)
			if m != None:
				clist.append((m.start(0), m.end(0), pattern[1]))
				if pattern[2] == "stop": break
				if pattern[2] == "more": pos = m.end(0)
				else: pos = sys.maxint
			else: break
		if m != None and pattern[2] == "stop":
			break
	cline = (len(line)+1)*[colours['default']]
	for i in clist:
		# each position in the string has its own colour
		cline[i[0]:i[1]] = [colours['default']+i[2]]*(i[1]-i[0])
	nline = ""
	clineprev = ""
	for i in range(len(line)):
		if cline[i] == clineprev: 
			nline = nline + line[i]
		else:
			nline = nline + cline[i] + line[i]
			clineprev = cline[i]
	nline = nline + colours['default']
	print nline
		
