import java.io.PrintStream; import java.util.Scanner; import java.util.Stack; import java.util.Vector; public class TypingMonkey { public static void main(String[] args) { Scanner input = new Scanner(System.in); PrintStream output = System.out; String line = input.nextLine(); Vector open = new Vector(); Vector close = new Vector(); for (int i = 0; i < line.length(); i += 2) { open.add(line.charAt(i)); close.add(line.charAt(i + 1)); } line = input.nextLine(); while (!line.equals("*")) { Stack stack = new Stack(); boolean valid = true; for (int i = 0; i < line.length() && valid; i++) { char key = line.charAt(i); if (open.contains(key)) { stack.push(key); } else if (close.contains(key) && !stack.isEmpty()) { Character opposite = open.get(close.indexOf(key)); valid = opposite.equals(stack.pop()); } else { valid = false; } } if (valid && stack.isEmpty()) { output.println("valid"); } else { output.println("invalid"); } line = input.nextLine(); } } }