/* package whatever; // don't place package name! */ 
 
import  java.util.* ; 
import  java.lang.* ; 
import  java.io.* ; 
import  java.util.regex.Matcher ; 
import  java.util.regex.Pattern ; 
 
 
/* Name of the class has to be "Main" only if the class is public. */ 
class  Ideone
{ 
	{ 
 
 
		final  String  regex 
=  "^(?!(?:(?:(?:\\ d{1,3}(?:[FM])\\ .(?:Front|Profile|Right)\\ .(?:Anger|Fear|Frown|Smile)\\ .(?:BW\\ .Micro|BW|C\\ .Micro|C)))|(?:\\ d{1,3}(?:F|M)\\ .(?:Front|Profile|Right)\\ .(?:Neutral|Smile)\\ .(?:C\\ .Micro|C|BW\\ .Micro|BW|HighLight|LowLight|MedLight)\\ .(?:BW\\ .Micro|BW|C\\ .Micro|C))|(?:\\ d{1,3}(?:F|M)\\ .(?:Selfie1|Selfie2|StudentID)\\ .(?:C\\ .Micro|C|BW\\ .Micro|BW)))).*$" ;  		final  String  string 
=  "95F    Front   Anger   BW\n "  			 +  "95F Front Anger BW\n " 
			 +  "95F Front Anger.BW\n " 
			 +  "95F.Front.Anger.C.Micro\n " 
			 +  "95F.Front.Fear.C.Micro\n " 
			 +  "95F.Front.Frown.BW\n " 
			 +  "-95F Front Anger BW.jpg    \n " 
			 +  "-95F.Front.Anger.C.Micro.jpg    \n " 
			 +  "-95F.Front.Fear.C.Micro.jpg    \n " 
			 +  "-95F.Front.Frown.BW.jpg" ; 
 
		final  Pattern pattern =  Pattern.compile ( regex, Pattern.MULTILINE ) ; 
		final  Matcher matcher =  pattern.matcher ( string) ; 
 
		while  ( matcher.find ( ) )  { 
		    System .
out .
println ( "Full match: "  +  matcher.
group ( 0 ) ) ;  		    for  ( int  i =  1 ;  i <=  matcher.groupCount ( ) ;  i++ )  { 
		        System .
out .
println ( "Group "  +  i 
+  ": "  +  matcher.
group ( i
) ) ;  		    } 
		} 
 
 
 
	} 
} 
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgoKCQlmaW5hbCBTdHJpbmcgcmVnZXggPSAiXig/ISg/Oig/Oig/OlxcZHsxLDN9KD86W0ZNXSlcXC4oPzpGcm9udHxQcm9maWxlfFJpZ2h0KVxcLig/OkFuZ2VyfEZlYXJ8RnJvd258U21pbGUpXFwuKD86QldcXC5NaWNyb3xCV3xDXFwuTWljcm98QykpKXwoPzpcXGR7MSwzfSg/OkZ8TSlcXC4oPzpGcm9udHxQcm9maWxlfFJpZ2h0KVxcLig/Ok5ldXRyYWx8U21pbGUpXFwuKD86Q1xcLk1pY3JvfEN8QldcXC5NaWNyb3xCV3xIaWdoTGlnaHR8TG93TGlnaHR8TWVkTGlnaHQpXFwuKD86QldcXC5NaWNyb3xCV3xDXFwuTWljcm98QykpfCg/OlxcZHsxLDN9KD86RnxNKVxcLig/OlNlbGZpZTF8U2VsZmllMnxTdHVkZW50SUQpXFwuKD86Q1xcLk1pY3JvfEN8QldcXC5NaWNyb3xCVykpKSkuKiQiOwoJCWZpbmFsIFN0cmluZyBzdHJpbmcgPSAiOTVGICAgIEZyb250ICAgQW5nZXIgICBCV1xuIgoJCQkgKyAiOTVGIEZyb250IEFuZ2VyIEJXXG4iCgkJCSArICI5NUYgRnJvbnQgQW5nZXIuQldcbiIKCQkJICsgIjk1Ri5Gcm9udC5Bbmdlci5DLk1pY3JvXG4iCgkJCSArICI5NUYuRnJvbnQuRmVhci5DLk1pY3JvXG4iCgkJCSArICI5NUYuRnJvbnQuRnJvd24uQldcbiIKCQkJICsgIi05NUYgRnJvbnQgQW5nZXIgQlcuanBnICAgIFxuIgoJCQkgKyAiLTk1Ri5Gcm9udC5Bbmdlci5DLk1pY3JvLmpwZyAgICBcbiIKCQkJICsgIi05NUYuRnJvbnQuRmVhci5DLk1pY3JvLmpwZyAgICBcbiIKCQkJICsgIi05NUYuRnJvbnQuRnJvd24uQlcuanBnIjsKCgkJZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4LCBQYXR0ZXJuLk1VTFRJTElORSk7CgkJZmluYWwgTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgoJCXdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewoJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZ1bGwgbWF0Y2g6ICIgKyBtYXRjaGVyLmdyb3VwKDApKTsKCQkgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWF0Y2hlci5ncm91cENvdW50KCk7IGkrKykgewoJCSAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJHcm91cCAiICsgaSArICI6ICIgKyBtYXRjaGVyLmdyb3VwKGkpKTsKCQkgICAgfQoJCX0KCgoKCX0KfQ==