- using System; 
- using System.Collections.Generic; 
- using System.IO; 
- using System.Linq; 
- using System.Text.RegularExpressions; 
-   
- public class Test 
- { 
- 	public static void Main() 
- 	{ 
- 		var input = "X1 OR ( X2 AND( X3 AND X4 ) AND X5 ) OR X6"; 
- 		var filtered = Regex.Replace(input, @"\((?>[^()]|(?<o>)\(|(?<-o>)\))*\)(?(o)(?!))", string.Empty); 
- 		var result = filtered.Split(new[] { ' ' },  
-         	StringSplitOptions.RemoveEmptyEntries) 
-             .Where(element => element == "OR" || element == "AND");     
- 		var temp = string.Join(" ", result); 
- 		Console.WriteLine(temp); 
- 	} 
- } 
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBpbnB1dCA9ICJYMSBPUiAoIFgyIEFORCggWDMgQU5EIFg0ICkgQU5EIFg1ICkgT1IgWDYiOwoJCXZhciBmaWx0ZXJlZCA9IFJlZ2V4LlJlcGxhY2UoaW5wdXQsIEAiXCgoPz5bXigpXXwoPzxvPilcKHwoPzwtbz4pXCkpKlwpKD8obykoPyEpKSIsIHN0cmluZy5FbXB0eSk7CgkJdmFyIHJlc3VsdCA9IGZpbHRlcmVkLlNwbGl0KG5ld1tdIHsgJyAnIH0sIAogICAgICAgIAlTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKQogICAgICAgICAgICAuV2hlcmUoZWxlbWVudCA9PiBlbGVtZW50ID09ICJPUiIgfHwgZWxlbWVudCA9PSAiQU5EIik7ICAgIAoJCXZhciB0ZW1wID0gc3RyaW5nLkpvaW4oIiAiLCByZXN1bHQpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKHRlbXApOwoJfQp9