- rules <- list( 
-     white = '^(?!white)(?!black)', 
-     red = 'green', 
-     black = '^(?!white)(?!green)(?!orange)', 
-     orange = 'red|black', 
-     green = 'orange|white', 
-     purple = '^(?!purple)(?!green)(?!orange)(?!white)' 
- ) 
-   
- parse_wires <- function(input) { 
-   return(strsplit(input, '\n')[[1]]) 
- } 
-   
- disarm <- function(input, rules) { 
-   wires <- parse_wires(input) 
-   for(i in 1:(length(wires)-1)) { 
-     if(length(grep(rules[wires[i]], wires[i+1], perl=T)) == 0) return('detonated!') 
-   } 
-   return('disarmed!') 
- } 
-   
- input1 <- "white 
- red 
- green 
- white" 
-   
- input2 <- "white 
- orange 
- green 
- white" 
-   
-   
- cat(paste('First bomb was', disarm(input1, rules))) 
- cat(paste('Second bomb was', disarm(input2, rules))) 
-   
				cnVsZXMgPC0gbGlzdCgKICAgIHdoaXRlID0gJ14oPyF3aGl0ZSkoPyFibGFjayknLAogICAgcmVkID0gJ2dyZWVuJywKICAgIGJsYWNrID0gJ14oPyF3aGl0ZSkoPyFncmVlbikoPyFvcmFuZ2UpJywKICAgIG9yYW5nZSA9ICdyZWR8YmxhY2snLAogICAgZ3JlZW4gPSAnb3JhbmdlfHdoaXRlJywKICAgIHB1cnBsZSA9ICdeKD8hcHVycGxlKSg/IWdyZWVuKSg/IW9yYW5nZSkoPyF3aGl0ZSknCikKCnBhcnNlX3dpcmVzIDwtIGZ1bmN0aW9uKGlucHV0KSB7CiAgcmV0dXJuKHN0cnNwbGl0KGlucHV0LCAnXG4nKVtbMV1dKQp9CgpkaXNhcm0gPC0gZnVuY3Rpb24oaW5wdXQsIHJ1bGVzKSB7CiAgd2lyZXMgPC0gcGFyc2Vfd2lyZXMoaW5wdXQpCiAgZm9yKGkgaW4gMToobGVuZ3RoKHdpcmVzKS0xKSkgewogICAgaWYobGVuZ3RoKGdyZXAocnVsZXNbd2lyZXNbaV1dLCB3aXJlc1tpKzFdLCBwZXJsPVQpKSA9PSAwKSByZXR1cm4oJ2RldG9uYXRlZCEnKQogIH0KICByZXR1cm4oJ2Rpc2FybWVkIScpCn0KCmlucHV0MSA8LSAid2hpdGUKcmVkCmdyZWVuCndoaXRlIgoKaW5wdXQyIDwtICJ3aGl0ZQpvcmFuZ2UKZ3JlZW4Kd2hpdGUiCgoKY2F0KHBhc3RlKCdGaXJzdCBib21iIHdhcycsIGRpc2FybShpbnB1dDEsIHJ1bGVzKSkpCmNhdChwYXN0ZSgnU2Vjb25kIGJvbWIgd2FzJywgZGlzYXJtKGlucHV0MiwgcnVsZXMpKSkK