diff options
Diffstat (limited to 'xor_codes')
-rw-r--r-- | xor_codes/Makefile.am | 14 | ||||
-rw-r--r-- | xor_codes/Makefile.in | 580 | ||||
-rw-r--r-- | xor_codes/test_xor_hd_code.c | 364 | ||||
-rw-r--r-- | xor_codes/test_xor_hd_code.h | 92 | ||||
-rw-r--r-- | xor_codes/tools/gen_failure_combs.py | 65 | ||||
-rw-r--r-- | xor_codes/tools/gen_goldilocks_codes.py | 230 | ||||
-rw-r--r-- | xor_codes/xor_code.c | 401 | ||||
-rw-r--r-- | xor_codes/xor_hd_code.c | 610 |
8 files changed, 2356 insertions, 0 deletions
diff --git a/xor_codes/Makefile.am b/xor_codes/Makefile.am new file mode 100644 index 0000000..eb1b72a --- /dev/null +++ b/xor_codes/Makefile.am @@ -0,0 +1,14 @@ +# XOR-based erasure codes (including HD Combination Codes) + +INCLUDES=-I./ -I../include +AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC $(INCLUDES) + +lib_LTLIBRARIES = libXorcode.la +libXorcode_la_SOURCES = xor_code.c xor_hd_code.c +libXorcode_la_LDFLAGS = -version-info 0:1:0 + +bin_PROGRAMS = test_xor_hd_code +test_xor_hd_code_SOURCES = test_xor_hd_code.c test_xor_hd_code.h +test_xor_hd_code_LDFLAGS = -lXorcode + +EXTRA_DIST = tools diff --git a/xor_codes/Makefile.in b/xor_codes/Makefile.in new file mode 100644 index 0000000..c30d0f2 --- /dev/null +++ b/xor_codes/Makefile.in @@ -0,0 +1,580 @@ +# Makefile.in generated by automake 1.11.3 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# XOR-based erasure codes (including HD Combination Codes) + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +bin_PROGRAMS = test_xor_hd_code$(EXEEXT) +subdir = xor_codes +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_compile_flag.m4 \ + $(top_srcdir)/m4/ax_ext.m4 \ + $(top_srcdir)/m4/ax_gcc_x86_avx_xgetbv.m4 \ + $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/include/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libXorcode_la_LIBADD = +am_libXorcode_la_OBJECTS = xor_code.lo xor_hd_code.lo +libXorcode_la_OBJECTS = $(am_libXorcode_la_OBJECTS) +libXorcode_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libXorcode_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(bin_PROGRAMS) +am_test_xor_hd_code_OBJECTS = test_xor_hd_code.$(OBJEXT) +test_xor_hd_code_OBJECTS = $(am_test_xor_hd_code_OBJECTS) +test_xor_hd_code_LDADD = $(LDADD) +test_xor_hd_code_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(test_xor_hd_code_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include +depcomp = +am__depfiles_maybe = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +SOURCES = $(libXorcode_la_SOURCES) $(test_xor_hd_code_SOURCES) +DIST_SOURCES = $(libXorcode_la_SOURCES) $(test_xor_hd_code_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SIMD_FLAGS = @SIMD_FLAGS@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__leading_dot = @am__leading_dot@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +INCLUDES = -I./ -I../include +AM_CFLAGS = -O3 $(SIMD_FLAGS) -fPIC $(INCLUDES) +lib_LTLIBRARIES = libXorcode.la +libXorcode_la_SOURCES = xor_code.c xor_hd_code.c +libXorcode_la_LDFLAGS = -version-info 0:1:0 +test_xor_hd_code_SOURCES = test_xor_hd_code.c test_xor_hd_code.h +test_xor_hd_code_LDFLAGS = -lXorcode +EXTRA_DIST = tools +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu --ignore-deps xor_codes/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu --ignore-deps xor_codes/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libXorcode.la: $(libXorcode_la_OBJECTS) $(libXorcode_la_DEPENDENCIES) $(EXTRA_libXorcode_la_DEPENDENCIES) + $(libXorcode_la_LINK) -rpath $(libdir) $(libXorcode_la_OBJECTS) $(libXorcode_la_LIBADD) $(LIBS) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + for p in $$list; do echo "$$p $$p"; done | \ + sed 's/$(EXEEXT)$$//' | \ + while read p p1; do if test -f $$p || test -f $$p1; \ + then echo "$$p"; echo "$$p"; else :; fi; \ + done | \ + sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ + -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ + sed 'N;N;N;s,\n, ,g' | \ + $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ + { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ + if ($$2 == $$4) files[d] = files[d] " " $$1; \ + else { print "f", $$3 "/" $$4, $$1; } } \ + END { for (d in files) print "f", d, files[d] }' | \ + while read type dir files; do \ + if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ + test -z "$$files" || { \ + echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ + $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ + } \ + ; done + +uninstall-binPROGRAMS: + @$(NORMAL_UNINSTALL) + @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + files=`for p in $$list; do echo "$$p"; done | \ + sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ + -e 's/$$/$(EXEEXT)/' `; \ + test -n "$$list" || exit 0; \ + echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(bindir)" && rm -f $$files + +clean-binPROGRAMS: + @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +test_xor_hd_code$(EXEEXT): $(test_xor_hd_code_OBJECTS) $(test_xor_hd_code_DEPENDENCIES) $(EXTRA_test_xor_hd_code_DEPENDENCIES) + @rm -f test_xor_hd_code$(EXEEXT) + $(test_xor_hd_code_LINK) $(test_xor_hd_code_OBJECTS) $(test_xor_hd_code_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(COMPILE) -c $< + +.c.obj: + $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: + $(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) +install-binPROGRAMS: install-libLTLIBRARIES + +installdirs: + for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ + clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-binPROGRAMS install-libLTLIBRARIES + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ + clean-generic clean-libLTLIBRARIES clean-libtool ctags \ + distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-binPROGRAMS \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ + uninstall-am uninstall-binPROGRAMS uninstall-libLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/xor_codes/test_xor_hd_code.c b/xor_codes/test_xor_hd_code.c new file mode 100644 index 0000000..9443378 --- /dev/null +++ b/xor_codes/test_xor_hd_code.c @@ -0,0 +1,364 @@ +/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY + * THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <xor_code.h> +#include <test_xor_hd_code.h> + +void fill_buffer(unsigned char *buf, int size, int seed) +{ + int i; + + buf[0] = seed; + + for (i=1; i < size; i++) { + buf[i] = ((buf[i-1] + i) % 256); + } +} + +int check_buffer(unsigned char *buf, int size, int seed) +{ + int i; + + if (buf[0] != seed) { + fprintf(stderr, "Seed does not match index 0: %u\n", buf[0]); + return -1; + } + + for (i=1; i < size; i++) { + if (buf[i] != ((buf[i-1] + i) % 256)) { + fprintf(stderr, "Buffer does not match index %d: %u\n", i, (buf[i] & 0xff)); + return -1; + } + } + + return 0; +} + +int test_hd_code(xor_code_t *code_desc, int num_failure_combs, int failure_combs[][4]) +{ + int i, j; + int num_iter = 1000; + int blocksize = 32768; + int missing_idxs[4] = { -1 }; + int ret = 0; + char **data, **parity; + clock_t start_time, end_time; + int *fragments_needed; + + srand(time(NULL)); + + data = (char**)malloc(code_desc->k * sizeof(char*)); + parity = (char**)malloc(code_desc->m * sizeof(char*)); + fragments_needed = (int*)malloc(code_desc->k*code_desc->m*sizeof(int)); + + bzero(fragments_needed, code_desc->k*code_desc->m*sizeof(int)); + + for (i=0; i < code_desc->k; i++) { + data[i] = aligned_malloc(blocksize, 16); + fill_buffer(data[i], blocksize, i); + if (!data[i]) { + fprintf(stderr, "Could not allocate memnory for data %d\n", i); + exit(2); + } + } + + for (i=0; i < code_desc->m; i++) { + parity[i] = aligned_malloc(blocksize, 16); + memset(parity[i], 0, blocksize); + if (!parity[i]) { + fprintf(stderr, "Could not allocate memnory for parity %d\n", i); + exit(2); + } + } + + start_time = clock(); + for (i=0; i < num_iter-1; i++) { + code_desc->encode(code_desc, data, parity, blocksize); + } + end_time = clock(); + + fprintf(stderr, "Encode: %.2f MB/s\n", ((double)(num_iter * blocksize * code_desc->k) / 1000 / 1000 ) / ((double)(end_time-start_time) / CLOCKS_PER_SEC)); + + for (i=0; i < code_desc->m; i++) { + memset(parity[i], 0, blocksize); + } + + code_desc->encode(code_desc, data, parity, blocksize); + + for (i=0; i < num_failure_combs; i++) { + int missing_idx_0 = failure_combs[i][0]; + int missing_idx_1 = failure_combs[i][1]; + int missing_idx_2 = failure_combs[i][2]; + + missing_idxs[0] = missing_idx_0; + missing_idxs[1] = missing_idx_1; + missing_idxs[2] = missing_idx_2; + missing_idxs[3] = -1; + + if (missing_idxs[0] > -1) { + if (missing_idxs[0] < code_desc->k) { + memset(data[missing_idxs[0]], 0, blocksize); + } else { + memset(parity[missing_idxs[0] - code_desc->k], 0, blocksize); + } + } + if (missing_idxs[1] > -1) { + if (missing_idxs[1] < code_desc->k) { + memset(data[missing_idxs[1]], 0, blocksize); + } else { + memset(parity[missing_idxs[1] - code_desc->k], 0, blocksize); + } + } + if (missing_idxs[2] > -1) { + if (missing_idxs[2] < code_desc->k) { + memset(data[missing_idxs[2]], 0, blocksize); + } else { + memset(parity[missing_idxs[2] - code_desc->k], 0, blocksize); + } + } + + /* + * Spot check to ensure missing elements are not included in + * list of fragments needed and that decode is 'doable' + */ + ret = code_desc->fragments_needed(code_desc, missing_idxs, fragments_needed); + + if (ret < 0) { + fprintf(stderr, "xor_hd_fragments_needed thinks reconstruction not possible, when it is!\n"); + exit(2); + } + + j = 0; + while (fragments_needed[j] > -1) { + if (fragments_needed[j] == missing_idxs[0] || + fragments_needed[j] == missing_idxs[1] || + fragments_needed[j] == missing_idxs[2]) { + fprintf(stderr, "fragments_needed[%d]=%d in missing index list: (%d %d %d)!\n", j, fragments_needed[j], missing_idxs[0], missing_idxs[1], missing_idxs[2]); + exit(2); + } + j++; + } + + missing_idxs[0] = missing_idx_0; + missing_idxs[1] = missing_idx_1; + missing_idxs[2] = missing_idx_2; + missing_idxs[3] = -1; + + code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1); + + if (missing_idxs[0] > -1 && missing_idxs[0] < code_desc->k && check_buffer(data[missing_idx_0], blocksize, missing_idx_0) < 0) { + fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[0], missing_idxs[0], missing_idxs[1], missing_idxs[2]); + exit(2); + } + if (missing_idxs[1] > -1 && missing_idxs[1] < code_desc->k && check_buffer(data[missing_idx_1], blocksize, missing_idx_1) < 0) { + fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[1], missing_idxs[0], missing_idxs[1], missing_idxs[2]); + exit(2); + } + if (missing_idxs[2] > -1 && missing_idxs[2] < code_desc->k && check_buffer(data[missing_idx_2], blocksize, missing_idx_2) < 0) { + fprintf(stderr, "Decode did not work: %d (%d %d %d)!\n", missing_idxs[2], missing_idxs[0], missing_idxs[1], missing_idxs[2]); + exit(2); + } + } + + start_time = clock(); + for (i=0; i < num_iter; i++) { + int j; + + missing_idxs[0] = rand() % (code_desc->k + code_desc->m); + for (j=1; j < code_desc->hd-1;j++) { + missing_idxs[j] = (missing_idxs[j-1] + 1) % (code_desc->k + code_desc->m); + } + missing_idxs[code_desc->hd-1] = -1; + + if (missing_idxs[0] > -1 && missing_idxs[0] < code_desc->k) { + memset(data[missing_idxs[0]], 0, blocksize); + } + if (missing_idxs[1] > -1 && missing_idxs[1] < code_desc->k) { + memset(data[missing_idxs[1]], 0, blocksize); + } + if (missing_idxs[2] > -1 && missing_idxs[2] < code_desc->k) { + memset(data[missing_idxs[2]], 0, blocksize); + } + + code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1); + } + end_time = clock(); + + fprintf(stderr, "Decode: %.2f MB/s\n", ((double)(num_iter * blocksize * code_desc->k) / 1000 / 1000 ) / ((double)(end_time-start_time) / CLOCKS_PER_SEC)); + + return 0; +} + +int run_test(int k, int m, int hd) +{ + int ret = -1; + xor_code_t * code_desc = init_xor_hd_code(k, m, hd); + + fprintf(stderr, "Running (%d, %d, %d):\n", k, m, hd); + + switch(k+m) { + case 10: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_10_3_COMBS, failure_combs_10_3); + } else { + ret = test_hd_code(code_desc, NUM_10_4_COMBS, failure_combs_10_4); + } + break; + case 11: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_11_3_COMBS, failure_combs_11_3); + } else { + ret = test_hd_code(code_desc, NUM_11_4_COMBS, failure_combs_11_4); + } + break; + case 12: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_12_3_COMBS, failure_combs_12_3); + } else { + ret = test_hd_code(code_desc, NUM_12_4_COMBS, failure_combs_12_4); + } + break; + case 13: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_13_3_COMBS, failure_combs_13_3); + } else { + ret = test_hd_code(code_desc, NUM_13_4_COMBS, failure_combs_13_4); + } + break; + case 14: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_14_3_COMBS, failure_combs_14_3); + } else { + ret = test_hd_code(code_desc, NUM_14_4_COMBS, failure_combs_14_4); + } + break; + case 15: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_15_3_COMBS, failure_combs_15_3); + } else { + ret = test_hd_code(code_desc, NUM_15_4_COMBS, failure_combs_15_4); + } + break; + case 16: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_16_3_COMBS, failure_combs_16_3); + } else { + ret = test_hd_code(code_desc, NUM_16_4_COMBS, failure_combs_16_4); + } + break; + case 17: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_17_3_COMBS, failure_combs_17_3); + } else { + ret = test_hd_code(code_desc, NUM_17_4_COMBS, failure_combs_17_4); + } + break; + case 18: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_18_3_COMBS, failure_combs_18_3); + } else { + ret = test_hd_code(code_desc, NUM_18_4_COMBS, failure_combs_18_4); + } + break; + case 19: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_19_3_COMBS, failure_combs_19_3); + } else { + ret = test_hd_code(code_desc, NUM_19_4_COMBS, failure_combs_19_4); + } + break; + case 20: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_20_3_COMBS, failure_combs_20_3); + } else { + ret = test_hd_code(code_desc, NUM_20_4_COMBS, failure_combs_20_4); + } + break; + case 21: + if (hd == 3) { + ret = test_hd_code(code_desc, NUM_21_3_COMBS, failure_combs_21_3); + } else { + ret = test_hd_code(code_desc, NUM_21_4_COMBS, failure_combs_21_4); + } + break; + case 22: + ret = test_hd_code(code_desc, NUM_22_4_COMBS, failure_combs_22_4); + break; + case 23: + ret = test_hd_code(code_desc, NUM_23_4_COMBS, failure_combs_23_4); + break; + case 24: + ret = test_hd_code(code_desc, NUM_24_4_COMBS, failure_combs_24_4); + break; + case 25: + ret = test_hd_code(code_desc, NUM_25_4_COMBS, failure_combs_25_4); + break; + case 26: + ret = test_hd_code(code_desc, NUM_26_4_COMBS, failure_combs_26_4); + break; + default: + ret = -1; + } + free(code_desc); + return ret; +} + +int main() +{ + int ret = 0; + int i; + + for (i=6; i < 16; i++) { + ret = run_test(i, 6, 3); + if (ret != 0) { + return ret; + } + } + + for (i=5; i < 11; i++) { + ret = run_test(i, 5, 3); + if (ret != 0) { + return ret; + } + } + + for (i=6; i < 21; i++) { + ret = run_test(i, 6, 4); + if (ret != 0) { + return ret; + } + } + + for (i=5; i < 11; i++) { + ret = run_test(i, 5, 4); + if (ret != 0) { + return ret; + } + } +} + diff --git a/xor_codes/test_xor_hd_code.h b/xor_codes/test_xor_hd_code.h new file mode 100644 index 0000000..eb96d05 --- /dev/null +++ b/xor_codes/test_xor_hd_code.h @@ -0,0 +1,92 @@ +/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY + * THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#define NUM_10_3_COMBS 55 +int failure_combs_10_3[NUM_10_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}} ; +#define NUM_10_4_COMBS 175 +int failure_combs_10_4[NUM_10_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {8, 9, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 8, 9, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 8, 9, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 8, 9, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 8, 9, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 8, 9, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 8, 9, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 8, 9, -1}, {7, 8, 9, -1}} ; +#define NUM_11_3_COMBS 66 +int failure_combs_11_3[NUM_11_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}} ; +#define NUM_11_4_COMBS 231 +int failure_combs_11_4[NUM_11_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {9, 10, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 9, 10, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 9, 10, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 9, 10, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 9, 10, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 9, 10, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 9, 10, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 9, 10, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 9, 10, -1}, {8, 9, 10, -1}} ; +#define NUM_12_3_COMBS 78 +int failure_combs_12_3[NUM_12_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}} ; +#define NUM_12_4_COMBS 298 +int failure_combs_12_4[NUM_12_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {10, 11, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 10, 11, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 10, 11, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 10, 11, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 10, 11, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 10, 11, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 10, 11, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 10, 11, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 10, 11, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 10, 11, -1}, {9, 10, 11, -1}} ; +#define NUM_13_3_COMBS 91 +int failure_combs_13_3[NUM_13_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}} ; +#define NUM_13_4_COMBS 377 +int failure_combs_13_4[NUM_13_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {11, 12, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 11, 12, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 11, 12, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 11, 12, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 11, 12, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 11, 12, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 11, 12, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 11, 12, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 11, 12, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 11, 12, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 11, 12, -1}, {10, 11, 12, -1}} ; +#define NUM_14_3_COMBS 105 +int failure_combs_14_3[NUM_14_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}} ; +#define NUM_14_4_COMBS 469 +int failure_combs_14_4[NUM_14_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {12, 13, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 12, 13, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 12, 13, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 12, 13, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 12, 13, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 12, 13, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 12, 13, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 12, 13, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 12, 13, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 12, 13, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 12, 13, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 12, 13, -1}, {11, 12, 13, -1}} ; +#define NUM_15_3_COMBS 120 +int failure_combs_15_3[NUM_15_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}} ; +#define NUM_15_4_COMBS 575 +int failure_combs_15_4[NUM_15_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {13, 14, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 13, 14, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 13, 14, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 13, 14, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 13, 14, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 13, 14, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 13, 14, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 13, 14, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 13, 14, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 13, 14, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 13, 14, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 13, 14, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 13, 14, -1}, {12, 13, 14, -1}} ; +#define NUM_16_3_COMBS 136 +int failure_combs_16_3[NUM_16_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}} ; +#define NUM_16_4_COMBS 696 +int failure_combs_16_4[NUM_16_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {14, 15, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 14, 15, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 14, 15, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 14, 15, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 14, 15, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 14, 15, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 14, 15, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 14, 15, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 14, 15, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 14, 15, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 14, 15, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 14, 15, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 14, 15, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 14, 15, -1}, {13, 14, 15, -1}} ; +#define NUM_17_3_COMBS 153 +int failure_combs_17_3[NUM_17_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}} ; +#define NUM_17_4_COMBS 833 +int failure_combs_17_4[NUM_17_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {15, 16, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 15, 16, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 15, 16, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 15, 16, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 15, 16, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 15, 16, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 15, 16, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 15, 16, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 15, 16, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 15, 16, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 15, 16, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 15, 16, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 15, 16, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 15, 16, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 15, 16, -1}, {14, 15, 16, -1}} ; +#define NUM_18_3_COMBS 171 +int failure_combs_18_3[NUM_18_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}} ; +#define NUM_18_4_COMBS 987 +int failure_combs_18_4[NUM_18_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {16, 17, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 16, 17, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 16, 17, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 16, 17, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 16, 17, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 16, 17, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 16, 17, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 16, 17, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 16, 17, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 16, 17, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 16, 17, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 16, 17, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 16, 17, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 16, 17, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 16, 17, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 16, 17, -1}, {15, 16, 17, -1}} ; +#define NUM_19_3_COMBS 190 +int failure_combs_19_3[NUM_19_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}} ; +#define NUM_19_4_COMBS 1159 +int failure_combs_19_4[NUM_19_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {17, 18, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 17, 18, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 17, 18, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 17, 18, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 17, 18, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 17, 18, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 17, 18, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 17, 18, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 17, 18, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 17, 18, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 17, 18, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 17, 18, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 17, 18, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 17, 18, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 17, 18, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 17, 18, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 17, 18, -1}, {16, 17, 18, -1}} ; +#define NUM_20_3_COMBS 210 +int failure_combs_20_3[NUM_20_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}} ; +#define NUM_20_4_COMBS 1350 +int failure_combs_20_4[NUM_20_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {18, 19, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 18, 19, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 18, 19, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 18, 19, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 18, 19, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 18, 19, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 18, 19, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 18, 19, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 18, 19, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 18, 19, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 18, 19, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 18, 19, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 18, 19, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 18, 19, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 18, 19, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 18, 19, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 18, 19, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 18, 19, -1}, {17, 18, 19, -1}} ; +#define NUM_21_3_COMBS 231 +int failure_combs_21_3[NUM_21_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}} ; +#define NUM_21_4_COMBS 1561 +int failure_combs_21_4[NUM_21_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {19, 20, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 19, 20, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 19, 20, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 19, 20, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 19, 20, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 19, 20, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 19, 20, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 19, 20, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 19, 20, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 19, 20, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 19, 20, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 19, 20, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 19, 20, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 19, 20, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 19, 20, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 19, 20, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 19, 20, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 19, 20, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 19, 20, -1}, {18, 19, 20, -1}} ; +#define NUM_22_3_COMBS 253 +int failure_combs_22_3[NUM_22_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}} ; +#define NUM_22_4_COMBS 1793 +int failure_combs_22_4[NUM_22_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {20, 21, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 20, 21, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 20, 21, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 20, 21, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 20, 21, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 20, 21, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 20, 21, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 20, 21, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 20, 21, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 20, 21, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 20, 21, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 20, 21, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 20, 21, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 20, 21, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 20, 21, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 20, 21, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 20, 21, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 20, 21, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 20, 21, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 20, 21, -1}, {19, 20, 21, -1}} ; +#define NUM_23_3_COMBS 276 +int failure_combs_23_3[NUM_23_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}} ; +#define NUM_23_4_COMBS 2047 +int failure_combs_23_4[NUM_23_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {21, 22, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 21, 22, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 21, 22, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 21, 22, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 21, 22, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 21, 22, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 21, 22, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 21, 22, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 21, 22, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 21, 22, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 21, 22, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 21, 22, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 21, 22, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 21, 22, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 21, 22, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 21, 22, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 21, 22, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 21, 22, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 21, 22, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 21, 22, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 21, 22, -1}, {20, 21, 22, -1}} ; +#define NUM_24_3_COMBS 300 +int failure_combs_24_3[NUM_24_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}} ; +#define NUM_24_4_COMBS 2324 +int failure_combs_24_4[NUM_24_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {22, 23, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 22, 23, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 22, 23, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 22, 23, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 22, 23, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 22, 23, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 22, 23, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 22, 23, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 22, 23, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 22, 23, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 22, 23, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 22, 23, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 22, 23, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 22, 23, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 22, 23, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 22, 23, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 22, 23, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 22, 23, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 22, 23, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 22, 23, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 22, 23, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 22, 23, -1}, {21, 22, 23, -1}} ; +#define NUM_25_3_COMBS 325 +int failure_combs_25_3[NUM_25_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}} ; +#define NUM_25_4_COMBS 2625 +int failure_combs_25_4[NUM_25_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {23, 24, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 23, 24, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 23, 24, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 23, 24, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 23, 24, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 23, 24, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 23, 24, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 23, 24, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 23, 24, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 23, 24, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 23, 24, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 23, 24, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 23, 24, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 23, 24, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 23, 24, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 23, 24, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 23, 24, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 23, 24, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 23, 24, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 23, 24, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 23, 24, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 23, 24, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 23, 24, -1}, {22, 23, 24, -1}} ; +#define NUM_26_3_COMBS 351 +int failure_combs_26_3[NUM_26_3_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}} ; +#define NUM_26_4_COMBS 2951 +int failure_combs_26_4[NUM_26_4_COMBS][4] = {{0, -1, -1, -1}, {1, -1, -1, -1}, {2, -1, -1, -1}, {3, -1, -1, -1}, {4, -1, -1, -1}, {5, -1, -1, -1}, {6, -1, -1, -1}, {7, -1, -1, -1}, {8, -1, -1, -1}, {9, -1, -1, -1}, {10, -1, -1, -1}, {11, -1, -1, -1}, {12, -1, -1, -1}, {13, -1, -1, -1}, {14, -1, -1, -1}, {15, -1, -1, -1}, {16, -1, -1, -1}, {17, -1, -1, -1}, {18, -1, -1, -1}, {19, -1, -1, -1}, {20, -1, -1, -1}, {21, -1, -1, -1}, {22, -1, -1, -1}, {23, -1, -1, -1}, {24, -1, -1, -1}, {25, -1, -1, -1}, {0, 1, -1, -1}, {0, 2, -1, -1}, {0, 3, -1, -1}, {0, 4, -1, -1}, {0, 5, -1, -1}, {0, 6, -1, -1}, {0, 7, -1, -1}, {0, 8, -1, -1}, {0, 9, -1, -1}, {0, 10, -1, -1}, {0, 11, -1, -1}, {0, 12, -1, -1}, {0, 13, -1, -1}, {0, 14, -1, -1}, {0, 15, -1, -1}, {0, 16, -1, -1}, {0, 17, -1, -1}, {0, 18, -1, -1}, {0, 19, -1, -1}, {0, 20, -1, -1}, {0, 21, -1, -1}, {0, 22, -1, -1}, {0, 23, -1, -1}, {0, 24, -1, -1}, {0, 25, -1, -1}, {1, 2, -1, -1}, {1, 3, -1, -1}, {1, 4, -1, -1}, {1, 5, -1, -1}, {1, 6, -1, -1}, {1, 7, -1, -1}, {1, 8, -1, -1}, {1, 9, -1, -1}, {1, 10, -1, -1}, {1, 11, -1, -1}, {1, 12, -1, -1}, {1, 13, -1, -1}, {1, 14, -1, -1}, {1, 15, -1, -1}, {1, 16, -1, -1}, {1, 17, -1, -1}, {1, 18, -1, -1}, {1, 19, -1, -1}, {1, 20, -1, -1}, {1, 21, -1, -1}, {1, 22, -1, -1}, {1, 23, -1, -1}, {1, 24, -1, -1}, {1, 25, -1, -1}, {2, 3, -1, -1}, {2, 4, -1, -1}, {2, 5, -1, -1}, {2, 6, -1, -1}, {2, 7, -1, -1}, {2, 8, -1, -1}, {2, 9, -1, -1}, {2, 10, -1, -1}, {2, 11, -1, -1}, {2, 12, -1, -1}, {2, 13, -1, -1}, {2, 14, -1, -1}, {2, 15, -1, -1}, {2, 16, -1, -1}, {2, 17, -1, -1}, {2, 18, -1, -1}, {2, 19, -1, -1}, {2, 20, -1, -1}, {2, 21, -1, -1}, {2, 22, -1, -1}, {2, 23, -1, -1}, {2, 24, -1, -1}, {2, 25, -1, -1}, {3, 4, -1, -1}, {3, 5, -1, -1}, {3, 6, -1, -1}, {3, 7, -1, -1}, {3, 8, -1, -1}, {3, 9, -1, -1}, {3, 10, -1, -1}, {3, 11, -1, -1}, {3, 12, -1, -1}, {3, 13, -1, -1}, {3, 14, -1, -1}, {3, 15, -1, -1}, {3, 16, -1, -1}, {3, 17, -1, -1}, {3, 18, -1, -1}, {3, 19, -1, -1}, {3, 20, -1, -1}, {3, 21, -1, -1}, {3, 22, -1, -1}, {3, 23, -1, -1}, {3, 24, -1, -1}, {3, 25, -1, -1}, {4, 5, -1, -1}, {4, 6, -1, -1}, {4, 7, -1, -1}, {4, 8, -1, -1}, {4, 9, -1, -1}, {4, 10, -1, -1}, {4, 11, -1, -1}, {4, 12, -1, -1}, {4, 13, -1, -1}, {4, 14, -1, -1}, {4, 15, -1, -1}, {4, 16, -1, -1}, {4, 17, -1, -1}, {4, 18, -1, -1}, {4, 19, -1, -1}, {4, 20, -1, -1}, {4, 21, -1, -1}, {4, 22, -1, -1}, {4, 23, -1, -1}, {4, 24, -1, -1}, {4, 25, -1, -1}, {5, 6, -1, -1}, {5, 7, -1, -1}, {5, 8, -1, -1}, {5, 9, -1, -1}, {5, 10, -1, -1}, {5, 11, -1, -1}, {5, 12, -1, -1}, {5, 13, -1, -1}, {5, 14, -1, -1}, {5, 15, -1, -1}, {5, 16, -1, -1}, {5, 17, -1, -1}, {5, 18, -1, -1}, {5, 19, -1, -1}, {5, 20, -1, -1}, {5, 21, -1, -1}, {5, 22, -1, -1}, {5, 23, -1, -1}, {5, 24, -1, -1}, {5, 25, -1, -1}, {6, 7, -1, -1}, {6, 8, -1, -1}, {6, 9, -1, -1}, {6, 10, -1, -1}, {6, 11, -1, -1}, {6, 12, -1, -1}, {6, 13, -1, -1}, {6, 14, -1, -1}, {6, 15, -1, -1}, {6, 16, -1, -1}, {6, 17, -1, -1}, {6, 18, -1, -1}, {6, 19, -1, -1}, {6, 20, -1, -1}, {6, 21, -1, -1}, {6, 22, -1, -1}, {6, 23, -1, -1}, {6, 24, -1, -1}, {6, 25, -1, -1}, {7, 8, -1, -1}, {7, 9, -1, -1}, {7, 10, -1, -1}, {7, 11, -1, -1}, {7, 12, -1, -1}, {7, 13, -1, -1}, {7, 14, -1, -1}, {7, 15, -1, -1}, {7, 16, -1, -1}, {7, 17, -1, -1}, {7, 18, -1, -1}, {7, 19, -1, -1}, {7, 20, -1, -1}, {7, 21, -1, -1}, {7, 22, -1, -1}, {7, 23, -1, -1}, {7, 24, -1, -1}, {7, 25, -1, -1}, {8, 9, -1, -1}, {8, 10, -1, -1}, {8, 11, -1, -1}, {8, 12, -1, -1}, {8, 13, -1, -1}, {8, 14, -1, -1}, {8, 15, -1, -1}, {8, 16, -1, -1}, {8, 17, -1, -1}, {8, 18, -1, -1}, {8, 19, -1, -1}, {8, 20, -1, -1}, {8, 21, -1, -1}, {8, 22, -1, -1}, {8, 23, -1, -1}, {8, 24, -1, -1}, {8, 25, -1, -1}, {9, 10, -1, -1}, {9, 11, -1, -1}, {9, 12, -1, -1}, {9, 13, -1, -1}, {9, 14, -1, -1}, {9, 15, -1, -1}, {9, 16, -1, -1}, {9, 17, -1, -1}, {9, 18, -1, -1}, {9, 19, -1, -1}, {9, 20, -1, -1}, {9, 21, -1, -1}, {9, 22, -1, -1}, {9, 23, -1, -1}, {9, 24, -1, -1}, {9, 25, -1, -1}, {10, 11, -1, -1}, {10, 12, -1, -1}, {10, 13, -1, -1}, {10, 14, -1, -1}, {10, 15, -1, -1}, {10, 16, -1, -1}, {10, 17, -1, -1}, {10, 18, -1, -1}, {10, 19, -1, -1}, {10, 20, -1, -1}, {10, 21, -1, -1}, {10, 22, -1, -1}, {10, 23, -1, -1}, {10, 24, -1, -1}, {10, 25, -1, -1}, {11, 12, -1, -1}, {11, 13, -1, -1}, {11, 14, -1, -1}, {11, 15, -1, -1}, {11, 16, -1, -1}, {11, 17, -1, -1}, {11, 18, -1, -1}, {11, 19, -1, -1}, {11, 20, -1, -1}, {11, 21, -1, -1}, {11, 22, -1, -1}, {11, 23, -1, -1}, {11, 24, -1, -1}, {11, 25, -1, -1}, {12, 13, -1, -1}, {12, 14, -1, -1}, {12, 15, -1, -1}, {12, 16, -1, -1}, {12, 17, -1, -1}, {12, 18, -1, -1}, {12, 19, -1, -1}, {12, 20, -1, -1}, {12, 21, -1, -1}, {12, 22, -1, -1}, {12, 23, -1, -1}, {12, 24, -1, -1}, {12, 25, -1, -1}, {13, 14, -1, -1}, {13, 15, -1, -1}, {13, 16, -1, -1}, {13, 17, -1, -1}, {13, 18, -1, -1}, {13, 19, -1, -1}, {13, 20, -1, -1}, {13, 21, -1, -1}, {13, 22, -1, -1}, {13, 23, -1, -1}, {13, 24, -1, -1}, {13, 25, -1, -1}, {14, 15, -1, -1}, {14, 16, -1, -1}, {14, 17, -1, -1}, {14, 18, -1, -1}, {14, 19, -1, -1}, {14, 20, -1, -1}, {14, 21, -1, -1}, {14, 22, -1, -1}, {14, 23, -1, -1}, {14, 24, -1, -1}, {14, 25, -1, -1}, {15, 16, -1, -1}, {15, 17, -1, -1}, {15, 18, -1, -1}, {15, 19, -1, -1}, {15, 20, -1, -1}, {15, 21, -1, -1}, {15, 22, -1, -1}, {15, 23, -1, -1}, {15, 24, -1, -1}, {15, 25, -1, -1}, {16, 17, -1, -1}, {16, 18, -1, -1}, {16, 19, -1, -1}, {16, 20, -1, -1}, {16, 21, -1, -1}, {16, 22, -1, -1}, {16, 23, -1, -1}, {16, 24, -1, -1}, {16, 25, -1, -1}, {17, 18, -1, -1}, {17, 19, -1, -1}, {17, 20, -1, -1}, {17, 21, -1, -1}, {17, 22, -1, -1}, {17, 23, -1, -1}, {17, 24, -1, -1}, {17, 25, -1, -1}, {18, 19, -1, -1}, {18, 20, -1, -1}, {18, 21, -1, -1}, {18, 22, -1, -1}, {18, 23, -1, -1}, {18, 24, -1, -1}, {18, 25, -1, -1}, {19, 20, -1, -1}, {19, 21, -1, -1}, {19, 22, -1, -1}, {19, 23, -1, -1}, {19, 24, -1, -1}, {19, 25, -1, -1}, {20, 21, -1, -1}, {20, 22, -1, -1}, {20, 23, -1, -1}, {20, 24, -1, -1}, {20, 25, -1, -1}, {21, 22, -1, -1}, {21, 23, -1, -1}, {21, 24, -1, -1}, {21, 25, -1, -1}, {22, 23, -1, -1}, {22, 24, -1, -1}, {22, 25, -1, -1}, {23, 24, -1, -1}, {23, 25, -1, -1}, {24, 25, -1, -1}, {0, 1, 2, -1}, {0, 1, 3, -1}, {0, 1, 4, -1}, {0, 1, 5, -1}, {0, 1, 6, -1}, {0, 1, 7, -1}, {0, 1, 8, -1}, {0, 1, 9, -1}, {0, 1, 10, -1}, {0, 1, 11, -1}, {0, 1, 12, -1}, {0, 1, 13, -1}, {0, 1, 14, -1}, {0, 1, 15, -1}, {0, 1, 16, -1}, {0, 1, 17, -1}, {0, 1, 18, -1}, {0, 1, 19, -1}, {0, 1, 20, -1}, {0, 1, 21, -1}, {0, 1, 22, -1}, {0, 1, 23, -1}, {0, 1, 24, -1}, {0, 1, 25, -1}, {0, 2, 3, -1}, {0, 2, 4, -1}, {0, 2, 5, -1}, {0, 2, 6, -1}, {0, 2, 7, -1}, {0, 2, 8, -1}, {0, 2, 9, -1}, {0, 2, 10, -1}, {0, 2, 11, -1}, {0, 2, 12, -1}, {0, 2, 13, -1}, {0, 2, 14, -1}, {0, 2, 15, -1}, {0, 2, 16, -1}, {0, 2, 17, -1}, {0, 2, 18, -1}, {0, 2, 19, -1}, {0, 2, 20, -1}, {0, 2, 21, -1}, {0, 2, 22, -1}, {0, 2, 23, -1}, {0, 2, 24, -1}, {0, 2, 25, -1}, {0, 3, 4, -1}, {0, 3, 5, -1}, {0, 3, 6, -1}, {0, 3, 7, -1}, {0, 3, 8, -1}, {0, 3, 9, -1}, {0, 3, 10, -1}, {0, 3, 11, -1}, {0, 3, 12, -1}, {0, 3, 13, -1}, {0, 3, 14, -1}, {0, 3, 15, -1}, {0, 3, 16, -1}, {0, 3, 17, -1}, {0, 3, 18, -1}, {0, 3, 19, -1}, {0, 3, 20, -1}, {0, 3, 21, -1}, {0, 3, 22, -1}, {0, 3, 23, -1}, {0, 3, 24, -1}, {0, 3, 25, -1}, {0, 4, 5, -1}, {0, 4, 6, -1}, {0, 4, 7, -1}, {0, 4, 8, -1}, {0, 4, 9, -1}, {0, 4, 10, -1}, {0, 4, 11, -1}, {0, 4, 12, -1}, {0, 4, 13, -1}, {0, 4, 14, -1}, {0, 4, 15, -1}, {0, 4, 16, -1}, {0, 4, 17, -1}, {0, 4, 18, -1}, {0, 4, 19, -1}, {0, 4, 20, -1}, {0, 4, 21, -1}, {0, 4, 22, -1}, {0, 4, 23, -1}, {0, 4, 24, -1}, {0, 4, 25, -1}, {0, 5, 6, -1}, {0, 5, 7, -1}, {0, 5, 8, -1}, {0, 5, 9, -1}, {0, 5, 10, -1}, {0, 5, 11, -1}, {0, 5, 12, -1}, {0, 5, 13, -1}, {0, 5, 14, -1}, {0, 5, 15, -1}, {0, 5, 16, -1}, {0, 5, 17, -1}, {0, 5, 18, -1}, {0, 5, 19, -1}, {0, 5, 20, -1}, {0, 5, 21, -1}, {0, 5, 22, -1}, {0, 5, 23, -1}, {0, 5, 24, -1}, {0, 5, 25, -1}, {0, 6, 7, -1}, {0, 6, 8, -1}, {0, 6, 9, -1}, {0, 6, 10, -1}, {0, 6, 11, -1}, {0, 6, 12, -1}, {0, 6, 13, -1}, {0, 6, 14, -1}, {0, 6, 15, -1}, {0, 6, 16, -1}, {0, 6, 17, -1}, {0, 6, 18, -1}, {0, 6, 19, -1}, {0, 6, 20, -1}, {0, 6, 21, -1}, {0, 6, 22, -1}, {0, 6, 23, -1}, {0, 6, 24, -1}, {0, 6, 25, -1}, {0, 7, 8, -1}, {0, 7, 9, -1}, {0, 7, 10, -1}, {0, 7, 11, -1}, {0, 7, 12, -1}, {0, 7, 13, -1}, {0, 7, 14, -1}, {0, 7, 15, -1}, {0, 7, 16, -1}, {0, 7, 17, -1}, {0, 7, 18, -1}, {0, 7, 19, -1}, {0, 7, 20, -1}, {0, 7, 21, -1}, {0, 7, 22, -1}, {0, 7, 23, -1}, {0, 7, 24, -1}, {0, 7, 25, -1}, {0, 8, 9, -1}, {0, 8, 10, -1}, {0, 8, 11, -1}, {0, 8, 12, -1}, {0, 8, 13, -1}, {0, 8, 14, -1}, {0, 8, 15, -1}, {0, 8, 16, -1}, {0, 8, 17, -1}, {0, 8, 18, -1}, {0, 8, 19, -1}, {0, 8, 20, -1}, {0, 8, 21, -1}, {0, 8, 22, -1}, {0, 8, 23, -1}, {0, 8, 24, -1}, {0, 8, 25, -1}, {0, 9, 10, -1}, {0, 9, 11, -1}, {0, 9, 12, -1}, {0, 9, 13, -1}, {0, 9, 14, -1}, {0, 9, 15, -1}, {0, 9, 16, -1}, {0, 9, 17, -1}, {0, 9, 18, -1}, {0, 9, 19, -1}, {0, 9, 20, -1}, {0, 9, 21, -1}, {0, 9, 22, -1}, {0, 9, 23, -1}, {0, 9, 24, -1}, {0, 9, 25, -1}, {0, 10, 11, -1}, {0, 10, 12, -1}, {0, 10, 13, -1}, {0, 10, 14, -1}, {0, 10, 15, -1}, {0, 10, 16, -1}, {0, 10, 17, -1}, {0, 10, 18, -1}, {0, 10, 19, -1}, {0, 10, 20, -1}, {0, 10, 21, -1}, {0, 10, 22, -1}, {0, 10, 23, -1}, {0, 10, 24, -1}, {0, 10, 25, -1}, {0, 11, 12, -1}, {0, 11, 13, -1}, {0, 11, 14, -1}, {0, 11, 15, -1}, {0, 11, 16, -1}, {0, 11, 17, -1}, {0, 11, 18, -1}, {0, 11, 19, -1}, {0, 11, 20, -1}, {0, 11, 21, -1}, {0, 11, 22, -1}, {0, 11, 23, -1}, {0, 11, 24, -1}, {0, 11, 25, -1}, {0, 12, 13, -1}, {0, 12, 14, -1}, {0, 12, 15, -1}, {0, 12, 16, -1}, {0, 12, 17, -1}, {0, 12, 18, -1}, {0, 12, 19, -1}, {0, 12, 20, -1}, {0, 12, 21, -1}, {0, 12, 22, -1}, {0, 12, 23, -1}, {0, 12, 24, -1}, {0, 12, 25, -1}, {0, 13, 14, -1}, {0, 13, 15, -1}, {0, 13, 16, -1}, {0, 13, 17, -1}, {0, 13, 18, -1}, {0, 13, 19, -1}, {0, 13, 20, -1}, {0, 13, 21, -1}, {0, 13, 22, -1}, {0, 13, 23, -1}, {0, 13, 24, -1}, {0, 13, 25, -1}, {0, 14, 15, -1}, {0, 14, 16, -1}, {0, 14, 17, -1}, {0, 14, 18, -1}, {0, 14, 19, -1}, {0, 14, 20, -1}, {0, 14, 21, -1}, {0, 14, 22, -1}, {0, 14, 23, -1}, {0, 14, 24, -1}, {0, 14, 25, -1}, {0, 15, 16, -1}, {0, 15, 17, -1}, {0, 15, 18, -1}, {0, 15, 19, -1}, {0, 15, 20, -1}, {0, 15, 21, -1}, {0, 15, 22, -1}, {0, 15, 23, -1}, {0, 15, 24, -1}, {0, 15, 25, -1}, {0, 16, 17, -1}, {0, 16, 18, -1}, {0, 16, 19, -1}, {0, 16, 20, -1}, {0, 16, 21, -1}, {0, 16, 22, -1}, {0, 16, 23, -1}, {0, 16, 24, -1}, {0, 16, 25, -1}, {0, 17, 18, -1}, {0, 17, 19, -1}, {0, 17, 20, -1}, {0, 17, 21, -1}, {0, 17, 22, -1}, {0, 17, 23, -1}, {0, 17, 24, -1}, {0, 17, 25, -1}, {0, 18, 19, -1}, {0, 18, 20, -1}, {0, 18, 21, -1}, {0, 18, 22, -1}, {0, 18, 23, -1}, {0, 18, 24, -1}, {0, 18, 25, -1}, {0, 19, 20, -1}, {0, 19, 21, -1}, {0, 19, 22, -1}, {0, 19, 23, -1}, {0, 19, 24, -1}, {0, 19, 25, -1}, {0, 20, 21, -1}, {0, 20, 22, -1}, {0, 20, 23, -1}, {0, 20, 24, -1}, {0, 20, 25, -1}, {0, 21, 22, -1}, {0, 21, 23, -1}, {0, 21, 24, -1}, {0, 21, 25, -1}, {0, 22, 23, -1}, {0, 22, 24, -1}, {0, 22, 25, -1}, {0, 23, 24, -1}, {0, 23, 25, -1}, {0, 24, 25, -1}, {1, 2, 3, -1}, {1, 2, 4, -1}, {1, 2, 5, -1}, {1, 2, 6, -1}, {1, 2, 7, -1}, {1, 2, 8, -1}, {1, 2, 9, -1}, {1, 2, 10, -1}, {1, 2, 11, -1}, {1, 2, 12, -1}, {1, 2, 13, -1}, {1, 2, 14, -1}, {1, 2, 15, -1}, {1, 2, 16, -1}, {1, 2, 17, -1}, {1, 2, 18, -1}, {1, 2, 19, -1}, {1, 2, 20, -1}, {1, 2, 21, -1}, {1, 2, 22, -1}, {1, 2, 23, -1}, {1, 2, 24, -1}, {1, 2, 25, -1}, {1, 3, 4, -1}, {1, 3, 5, -1}, {1, 3, 6, -1}, {1, 3, 7, -1}, {1, 3, 8, -1}, {1, 3, 9, -1}, {1, 3, 10, -1}, {1, 3, 11, -1}, {1, 3, 12, -1}, {1, 3, 13, -1}, {1, 3, 14, -1}, {1, 3, 15, -1}, {1, 3, 16, -1}, {1, 3, 17, -1}, {1, 3, 18, -1}, {1, 3, 19, -1}, {1, 3, 20, -1}, {1, 3, 21, -1}, {1, 3, 22, -1}, {1, 3, 23, -1}, {1, 3, 24, -1}, {1, 3, 25, -1}, {1, 4, 5, -1}, {1, 4, 6, -1}, {1, 4, 7, -1}, {1, 4, 8, -1}, {1, 4, 9, -1}, {1, 4, 10, -1}, {1, 4, 11, -1}, {1, 4, 12, -1}, {1, 4, 13, -1}, {1, 4, 14, -1}, {1, 4, 15, -1}, {1, 4, 16, -1}, {1, 4, 17, -1}, {1, 4, 18, -1}, {1, 4, 19, -1}, {1, 4, 20, -1}, {1, 4, 21, -1}, {1, 4, 22, -1}, {1, 4, 23, -1}, {1, 4, 24, -1}, {1, 4, 25, -1}, {1, 5, 6, -1}, {1, 5, 7, -1}, {1, 5, 8, -1}, {1, 5, 9, -1}, {1, 5, 10, -1}, {1, 5, 11, -1}, {1, 5, 12, -1}, {1, 5, 13, -1}, {1, 5, 14, -1}, {1, 5, 15, -1}, {1, 5, 16, -1}, {1, 5, 17, -1}, {1, 5, 18, -1}, {1, 5, 19, -1}, {1, 5, 20, -1}, {1, 5, 21, -1}, {1, 5, 22, -1}, {1, 5, 23, -1}, {1, 5, 24, -1}, {1, 5, 25, -1}, {1, 6, 7, -1}, {1, 6, 8, -1}, {1, 6, 9, -1}, {1, 6, 10, -1}, {1, 6, 11, -1}, {1, 6, 12, -1}, {1, 6, 13, -1}, {1, 6, 14, -1}, {1, 6, 15, -1}, {1, 6, 16, -1}, {1, 6, 17, -1}, {1, 6, 18, -1}, {1, 6, 19, -1}, {1, 6, 20, -1}, {1, 6, 21, -1}, {1, 6, 22, -1}, {1, 6, 23, -1}, {1, 6, 24, -1}, {1, 6, 25, -1}, {1, 7, 8, -1}, {1, 7, 9, -1}, {1, 7, 10, -1}, {1, 7, 11, -1}, {1, 7, 12, -1}, {1, 7, 13, -1}, {1, 7, 14, -1}, {1, 7, 15, -1}, {1, 7, 16, -1}, {1, 7, 17, -1}, {1, 7, 18, -1}, {1, 7, 19, -1}, {1, 7, 20, -1}, {1, 7, 21, -1}, {1, 7, 22, -1}, {1, 7, 23, -1}, {1, 7, 24, -1}, {1, 7, 25, -1}, {1, 8, 9, -1}, {1, 8, 10, -1}, {1, 8, 11, -1}, {1, 8, 12, -1}, {1, 8, 13, -1}, {1, 8, 14, -1}, {1, 8, 15, -1}, {1, 8, 16, -1}, {1, 8, 17, -1}, {1, 8, 18, -1}, {1, 8, 19, -1}, {1, 8, 20, -1}, {1, 8, 21, -1}, {1, 8, 22, -1}, {1, 8, 23, -1}, {1, 8, 24, -1}, {1, 8, 25, -1}, {1, 9, 10, -1}, {1, 9, 11, -1}, {1, 9, 12, -1}, {1, 9, 13, -1}, {1, 9, 14, -1}, {1, 9, 15, -1}, {1, 9, 16, -1}, {1, 9, 17, -1}, {1, 9, 18, -1}, {1, 9, 19, -1}, {1, 9, 20, -1}, {1, 9, 21, -1}, {1, 9, 22, -1}, {1, 9, 23, -1}, {1, 9, 24, -1}, {1, 9, 25, -1}, {1, 10, 11, -1}, {1, 10, 12, -1}, {1, 10, 13, -1}, {1, 10, 14, -1}, {1, 10, 15, -1}, {1, 10, 16, -1}, {1, 10, 17, -1}, {1, 10, 18, -1}, {1, 10, 19, -1}, {1, 10, 20, -1}, {1, 10, 21, -1}, {1, 10, 22, -1}, {1, 10, 23, -1}, {1, 10, 24, -1}, {1, 10, 25, -1}, {1, 11, 12, -1}, {1, 11, 13, -1}, {1, 11, 14, -1}, {1, 11, 15, -1}, {1, 11, 16, -1}, {1, 11, 17, -1}, {1, 11, 18, -1}, {1, 11, 19, -1}, {1, 11, 20, -1}, {1, 11, 21, -1}, {1, 11, 22, -1}, {1, 11, 23, -1}, {1, 11, 24, -1}, {1, 11, 25, -1}, {1, 12, 13, -1}, {1, 12, 14, -1}, {1, 12, 15, -1}, {1, 12, 16, -1}, {1, 12, 17, -1}, {1, 12, 18, -1}, {1, 12, 19, -1}, {1, 12, 20, -1}, {1, 12, 21, -1}, {1, 12, 22, -1}, {1, 12, 23, -1}, {1, 12, 24, -1}, {1, 12, 25, -1}, {1, 13, 14, -1}, {1, 13, 15, -1}, {1, 13, 16, -1}, {1, 13, 17, -1}, {1, 13, 18, -1}, {1, 13, 19, -1}, {1, 13, 20, -1}, {1, 13, 21, -1}, {1, 13, 22, -1}, {1, 13, 23, -1}, {1, 13, 24, -1}, {1, 13, 25, -1}, {1, 14, 15, -1}, {1, 14, 16, -1}, {1, 14, 17, -1}, {1, 14, 18, -1}, {1, 14, 19, -1}, {1, 14, 20, -1}, {1, 14, 21, -1}, {1, 14, 22, -1}, {1, 14, 23, -1}, {1, 14, 24, -1}, {1, 14, 25, -1}, {1, 15, 16, -1}, {1, 15, 17, -1}, {1, 15, 18, -1}, {1, 15, 19, -1}, {1, 15, 20, -1}, {1, 15, 21, -1}, {1, 15, 22, -1}, {1, 15, 23, -1}, {1, 15, 24, -1}, {1, 15, 25, -1}, {1, 16, 17, -1}, {1, 16, 18, -1}, {1, 16, 19, -1}, {1, 16, 20, -1}, {1, 16, 21, -1}, {1, 16, 22, -1}, {1, 16, 23, -1}, {1, 16, 24, -1}, {1, 16, 25, -1}, {1, 17, 18, -1}, {1, 17, 19, -1}, {1, 17, 20, -1}, {1, 17, 21, -1}, {1, 17, 22, -1}, {1, 17, 23, -1}, {1, 17, 24, -1}, {1, 17, 25, -1}, {1, 18, 19, -1}, {1, 18, 20, -1}, {1, 18, 21, -1}, {1, 18, 22, -1}, {1, 18, 23, -1}, {1, 18, 24, -1}, {1, 18, 25, -1}, {1, 19, 20, -1}, {1, 19, 21, -1}, {1, 19, 22, -1}, {1, 19, 23, -1}, {1, 19, 24, -1}, {1, 19, 25, -1}, {1, 20, 21, -1}, {1, 20, 22, -1}, {1, 20, 23, -1}, {1, 20, 24, -1}, {1, 20, 25, -1}, {1, 21, 22, -1}, {1, 21, 23, -1}, {1, 21, 24, -1}, {1, 21, 25, -1}, {1, 22, 23, -1}, {1, 22, 24, -1}, {1, 22, 25, -1}, {1, 23, 24, -1}, {1, 23, 25, -1}, {1, 24, 25, -1}, {2, 3, 4, -1}, {2, 3, 5, -1}, {2, 3, 6, -1}, {2, 3, 7, -1}, {2, 3, 8, -1}, {2, 3, 9, -1}, {2, 3, 10, -1}, {2, 3, 11, -1}, {2, 3, 12, -1}, {2, 3, 13, -1}, {2, 3, 14, -1}, {2, 3, 15, -1}, {2, 3, 16, -1}, {2, 3, 17, -1}, {2, 3, 18, -1}, {2, 3, 19, -1}, {2, 3, 20, -1}, {2, 3, 21, -1}, {2, 3, 22, -1}, {2, 3, 23, -1}, {2, 3, 24, -1}, {2, 3, 25, -1}, {2, 4, 5, -1}, {2, 4, 6, -1}, {2, 4, 7, -1}, {2, 4, 8, -1}, {2, 4, 9, -1}, {2, 4, 10, -1}, {2, 4, 11, -1}, {2, 4, 12, -1}, {2, 4, 13, -1}, {2, 4, 14, -1}, {2, 4, 15, -1}, {2, 4, 16, -1}, {2, 4, 17, -1}, {2, 4, 18, -1}, {2, 4, 19, -1}, {2, 4, 20, -1}, {2, 4, 21, -1}, {2, 4, 22, -1}, {2, 4, 23, -1}, {2, 4, 24, -1}, {2, 4, 25, -1}, {2, 5, 6, -1}, {2, 5, 7, -1}, {2, 5, 8, -1}, {2, 5, 9, -1}, {2, 5, 10, -1}, {2, 5, 11, -1}, {2, 5, 12, -1}, {2, 5, 13, -1}, {2, 5, 14, -1}, {2, 5, 15, -1}, {2, 5, 16, -1}, {2, 5, 17, -1}, {2, 5, 18, -1}, {2, 5, 19, -1}, {2, 5, 20, -1}, {2, 5, 21, -1}, {2, 5, 22, -1}, {2, 5, 23, -1}, {2, 5, 24, -1}, {2, 5, 25, -1}, {2, 6, 7, -1}, {2, 6, 8, -1}, {2, 6, 9, -1}, {2, 6, 10, -1}, {2, 6, 11, -1}, {2, 6, 12, -1}, {2, 6, 13, -1}, {2, 6, 14, -1}, {2, 6, 15, -1}, {2, 6, 16, -1}, {2, 6, 17, -1}, {2, 6, 18, -1}, {2, 6, 19, -1}, {2, 6, 20, -1}, {2, 6, 21, -1}, {2, 6, 22, -1}, {2, 6, 23, -1}, {2, 6, 24, -1}, {2, 6, 25, -1}, {2, 7, 8, -1}, {2, 7, 9, -1}, {2, 7, 10, -1}, {2, 7, 11, -1}, {2, 7, 12, -1}, {2, 7, 13, -1}, {2, 7, 14, -1}, {2, 7, 15, -1}, {2, 7, 16, -1}, {2, 7, 17, -1}, {2, 7, 18, -1}, {2, 7, 19, -1}, {2, 7, 20, -1}, {2, 7, 21, -1}, {2, 7, 22, -1}, {2, 7, 23, -1}, {2, 7, 24, -1}, {2, 7, 25, -1}, {2, 8, 9, -1}, {2, 8, 10, -1}, {2, 8, 11, -1}, {2, 8, 12, -1}, {2, 8, 13, -1}, {2, 8, 14, -1}, {2, 8, 15, -1}, {2, 8, 16, -1}, {2, 8, 17, -1}, {2, 8, 18, -1}, {2, 8, 19, -1}, {2, 8, 20, -1}, {2, 8, 21, -1}, {2, 8, 22, -1}, {2, 8, 23, -1}, {2, 8, 24, -1}, {2, 8, 25, -1}, {2, 9, 10, -1}, {2, 9, 11, -1}, {2, 9, 12, -1}, {2, 9, 13, -1}, {2, 9, 14, -1}, {2, 9, 15, -1}, {2, 9, 16, -1}, {2, 9, 17, -1}, {2, 9, 18, -1}, {2, 9, 19, -1}, {2, 9, 20, -1}, {2, 9, 21, -1}, {2, 9, 22, -1}, {2, 9, 23, -1}, {2, 9, 24, -1}, {2, 9, 25, -1}, {2, 10, 11, -1}, {2, 10, 12, -1}, {2, 10, 13, -1}, {2, 10, 14, -1}, {2, 10, 15, -1}, {2, 10, 16, -1}, {2, 10, 17, -1}, {2, 10, 18, -1}, {2, 10, 19, -1}, {2, 10, 20, -1}, {2, 10, 21, -1}, {2, 10, 22, -1}, {2, 10, 23, -1}, {2, 10, 24, -1}, {2, 10, 25, -1}, {2, 11, 12, -1}, {2, 11, 13, -1}, {2, 11, 14, -1}, {2, 11, 15, -1}, {2, 11, 16, -1}, {2, 11, 17, -1}, {2, 11, 18, -1}, {2, 11, 19, -1}, {2, 11, 20, -1}, {2, 11, 21, -1}, {2, 11, 22, -1}, {2, 11, 23, -1}, {2, 11, 24, -1}, {2, 11, 25, -1}, {2, 12, 13, -1}, {2, 12, 14, -1}, {2, 12, 15, -1}, {2, 12, 16, -1}, {2, 12, 17, -1}, {2, 12, 18, -1}, {2, 12, 19, -1}, {2, 12, 20, -1}, {2, 12, 21, -1}, {2, 12, 22, -1}, {2, 12, 23, -1}, {2, 12, 24, -1}, {2, 12, 25, -1}, {2, 13, 14, -1}, {2, 13, 15, -1}, {2, 13, 16, -1}, {2, 13, 17, -1}, {2, 13, 18, -1}, {2, 13, 19, -1}, {2, 13, 20, -1}, {2, 13, 21, -1}, {2, 13, 22, -1}, {2, 13, 23, -1}, {2, 13, 24, -1}, {2, 13, 25, -1}, {2, 14, 15, -1}, {2, 14, 16, -1}, {2, 14, 17, -1}, {2, 14, 18, -1}, {2, 14, 19, -1}, {2, 14, 20, -1}, {2, 14, 21, -1}, {2, 14, 22, -1}, {2, 14, 23, -1}, {2, 14, 24, -1}, {2, 14, 25, -1}, {2, 15, 16, -1}, {2, 15, 17, -1}, {2, 15, 18, -1}, {2, 15, 19, -1}, {2, 15, 20, -1}, {2, 15, 21, -1}, {2, 15, 22, -1}, {2, 15, 23, -1}, {2, 15, 24, -1}, {2, 15, 25, -1}, {2, 16, 17, -1}, {2, 16, 18, -1}, {2, 16, 19, -1}, {2, 16, 20, -1}, {2, 16, 21, -1}, {2, 16, 22, -1}, {2, 16, 23, -1}, {2, 16, 24, -1}, {2, 16, 25, -1}, {2, 17, 18, -1}, {2, 17, 19, -1}, {2, 17, 20, -1}, {2, 17, 21, -1}, {2, 17, 22, -1}, {2, 17, 23, -1}, {2, 17, 24, -1}, {2, 17, 25, -1}, {2, 18, 19, -1}, {2, 18, 20, -1}, {2, 18, 21, -1}, {2, 18, 22, -1}, {2, 18, 23, -1}, {2, 18, 24, -1}, {2, 18, 25, -1}, {2, 19, 20, -1}, {2, 19, 21, -1}, {2, 19, 22, -1}, {2, 19, 23, -1}, {2, 19, 24, -1}, {2, 19, 25, -1}, {2, 20, 21, -1}, {2, 20, 22, -1}, {2, 20, 23, -1}, {2, 20, 24, -1}, {2, 20, 25, -1}, {2, 21, 22, -1}, {2, 21, 23, -1}, {2, 21, 24, -1}, {2, 21, 25, -1}, {2, 22, 23, -1}, {2, 22, 24, -1}, {2, 22, 25, -1}, {2, 23, 24, -1}, {2, 23, 25, -1}, {2, 24, 25, -1}, {3, 4, 5, -1}, {3, 4, 6, -1}, {3, 4, 7, -1}, {3, 4, 8, -1}, {3, 4, 9, -1}, {3, 4, 10, -1}, {3, 4, 11, -1}, {3, 4, 12, -1}, {3, 4, 13, -1}, {3, 4, 14, -1}, {3, 4, 15, -1}, {3, 4, 16, -1}, {3, 4, 17, -1}, {3, 4, 18, -1}, {3, 4, 19, -1}, {3, 4, 20, -1}, {3, 4, 21, -1}, {3, 4, 22, -1}, {3, 4, 23, -1}, {3, 4, 24, -1}, {3, 4, 25, -1}, {3, 5, 6, -1}, {3, 5, 7, -1}, {3, 5, 8, -1}, {3, 5, 9, -1}, {3, 5, 10, -1}, {3, 5, 11, -1}, {3, 5, 12, -1}, {3, 5, 13, -1}, {3, 5, 14, -1}, {3, 5, 15, -1}, {3, 5, 16, -1}, {3, 5, 17, -1}, {3, 5, 18, -1}, {3, 5, 19, -1}, {3, 5, 20, -1}, {3, 5, 21, -1}, {3, 5, 22, -1}, {3, 5, 23, -1}, {3, 5, 24, -1}, {3, 5, 25, -1}, {3, 6, 7, -1}, {3, 6, 8, -1}, {3, 6, 9, -1}, {3, 6, 10, -1}, {3, 6, 11, -1}, {3, 6, 12, -1}, {3, 6, 13, -1}, {3, 6, 14, -1}, {3, 6, 15, -1}, {3, 6, 16, -1}, {3, 6, 17, -1}, {3, 6, 18, -1}, {3, 6, 19, -1}, {3, 6, 20, -1}, {3, 6, 21, -1}, {3, 6, 22, -1}, {3, 6, 23, -1}, {3, 6, 24, -1}, {3, 6, 25, -1}, {3, 7, 8, -1}, {3, 7, 9, -1}, {3, 7, 10, -1}, {3, 7, 11, -1}, {3, 7, 12, -1}, {3, 7, 13, -1}, {3, 7, 14, -1}, {3, 7, 15, -1}, {3, 7, 16, -1}, {3, 7, 17, -1}, {3, 7, 18, -1}, {3, 7, 19, -1}, {3, 7, 20, -1}, {3, 7, 21, -1}, {3, 7, 22, -1}, {3, 7, 23, -1}, {3, 7, 24, -1}, {3, 7, 25, -1}, {3, 8, 9, -1}, {3, 8, 10, -1}, {3, 8, 11, -1}, {3, 8, 12, -1}, {3, 8, 13, -1}, {3, 8, 14, -1}, {3, 8, 15, -1}, {3, 8, 16, -1}, {3, 8, 17, -1}, {3, 8, 18, -1}, {3, 8, 19, -1}, {3, 8, 20, -1}, {3, 8, 21, -1}, {3, 8, 22, -1}, {3, 8, 23, -1}, {3, 8, 24, -1}, {3, 8, 25, -1}, {3, 9, 10, -1}, {3, 9, 11, -1}, {3, 9, 12, -1}, {3, 9, 13, -1}, {3, 9, 14, -1}, {3, 9, 15, -1}, {3, 9, 16, -1}, {3, 9, 17, -1}, {3, 9, 18, -1}, {3, 9, 19, -1}, {3, 9, 20, -1}, {3, 9, 21, -1}, {3, 9, 22, -1}, {3, 9, 23, -1}, {3, 9, 24, -1}, {3, 9, 25, -1}, {3, 10, 11, -1}, {3, 10, 12, -1}, {3, 10, 13, -1}, {3, 10, 14, -1}, {3, 10, 15, -1}, {3, 10, 16, -1}, {3, 10, 17, -1}, {3, 10, 18, -1}, {3, 10, 19, -1}, {3, 10, 20, -1}, {3, 10, 21, -1}, {3, 10, 22, -1}, {3, 10, 23, -1}, {3, 10, 24, -1}, {3, 10, 25, -1}, {3, 11, 12, -1}, {3, 11, 13, -1}, {3, 11, 14, -1}, {3, 11, 15, -1}, {3, 11, 16, -1}, {3, 11, 17, -1}, {3, 11, 18, -1}, {3, 11, 19, -1}, {3, 11, 20, -1}, {3, 11, 21, -1}, {3, 11, 22, -1}, {3, 11, 23, -1}, {3, 11, 24, -1}, {3, 11, 25, -1}, {3, 12, 13, -1}, {3, 12, 14, -1}, {3, 12, 15, -1}, {3, 12, 16, -1}, {3, 12, 17, -1}, {3, 12, 18, -1}, {3, 12, 19, -1}, {3, 12, 20, -1}, {3, 12, 21, -1}, {3, 12, 22, -1}, {3, 12, 23, -1}, {3, 12, 24, -1}, {3, 12, 25, -1}, {3, 13, 14, -1}, {3, 13, 15, -1}, {3, 13, 16, -1}, {3, 13, 17, -1}, {3, 13, 18, -1}, {3, 13, 19, -1}, {3, 13, 20, -1}, {3, 13, 21, -1}, {3, 13, 22, -1}, {3, 13, 23, -1}, {3, 13, 24, -1}, {3, 13, 25, -1}, {3, 14, 15, -1}, {3, 14, 16, -1}, {3, 14, 17, -1}, {3, 14, 18, -1}, {3, 14, 19, -1}, {3, 14, 20, -1}, {3, 14, 21, -1}, {3, 14, 22, -1}, {3, 14, 23, -1}, {3, 14, 24, -1}, {3, 14, 25, -1}, {3, 15, 16, -1}, {3, 15, 17, -1}, {3, 15, 18, -1}, {3, 15, 19, -1}, {3, 15, 20, -1}, {3, 15, 21, -1}, {3, 15, 22, -1}, {3, 15, 23, -1}, {3, 15, 24, -1}, {3, 15, 25, -1}, {3, 16, 17, -1}, {3, 16, 18, -1}, {3, 16, 19, -1}, {3, 16, 20, -1}, {3, 16, 21, -1}, {3, 16, 22, -1}, {3, 16, 23, -1}, {3, 16, 24, -1}, {3, 16, 25, -1}, {3, 17, 18, -1}, {3, 17, 19, -1}, {3, 17, 20, -1}, {3, 17, 21, -1}, {3, 17, 22, -1}, {3, 17, 23, -1}, {3, 17, 24, -1}, {3, 17, 25, -1}, {3, 18, 19, -1}, {3, 18, 20, -1}, {3, 18, 21, -1}, {3, 18, 22, -1}, {3, 18, 23, -1}, {3, 18, 24, -1}, {3, 18, 25, -1}, {3, 19, 20, -1}, {3, 19, 21, -1}, {3, 19, 22, -1}, {3, 19, 23, -1}, {3, 19, 24, -1}, {3, 19, 25, -1}, {3, 20, 21, -1}, {3, 20, 22, -1}, {3, 20, 23, -1}, {3, 20, 24, -1}, {3, 20, 25, -1}, {3, 21, 22, -1}, {3, 21, 23, -1}, {3, 21, 24, -1}, {3, 21, 25, -1}, {3, 22, 23, -1}, {3, 22, 24, -1}, {3, 22, 25, -1}, {3, 23, 24, -1}, {3, 23, 25, -1}, {3, 24, 25, -1}, {4, 5, 6, -1}, {4, 5, 7, -1}, {4, 5, 8, -1}, {4, 5, 9, -1}, {4, 5, 10, -1}, {4, 5, 11, -1}, {4, 5, 12, -1}, {4, 5, 13, -1}, {4, 5, 14, -1}, {4, 5, 15, -1}, {4, 5, 16, -1}, {4, 5, 17, -1}, {4, 5, 18, -1}, {4, 5, 19, -1}, {4, 5, 20, -1}, {4, 5, 21, -1}, {4, 5, 22, -1}, {4, 5, 23, -1}, {4, 5, 24, -1}, {4, 5, 25, -1}, {4, 6, 7, -1}, {4, 6, 8, -1}, {4, 6, 9, -1}, {4, 6, 10, -1}, {4, 6, 11, -1}, {4, 6, 12, -1}, {4, 6, 13, -1}, {4, 6, 14, -1}, {4, 6, 15, -1}, {4, 6, 16, -1}, {4, 6, 17, -1}, {4, 6, 18, -1}, {4, 6, 19, -1}, {4, 6, 20, -1}, {4, 6, 21, -1}, {4, 6, 22, -1}, {4, 6, 23, -1}, {4, 6, 24, -1}, {4, 6, 25, -1}, {4, 7, 8, -1}, {4, 7, 9, -1}, {4, 7, 10, -1}, {4, 7, 11, -1}, {4, 7, 12, -1}, {4, 7, 13, -1}, {4, 7, 14, -1}, {4, 7, 15, -1}, {4, 7, 16, -1}, {4, 7, 17, -1}, {4, 7, 18, -1}, {4, 7, 19, -1}, {4, 7, 20, -1}, {4, 7, 21, -1}, {4, 7, 22, -1}, {4, 7, 23, -1}, {4, 7, 24, -1}, {4, 7, 25, -1}, {4, 8, 9, -1}, {4, 8, 10, -1}, {4, 8, 11, -1}, {4, 8, 12, -1}, {4, 8, 13, -1}, {4, 8, 14, -1}, {4, 8, 15, -1}, {4, 8, 16, -1}, {4, 8, 17, -1}, {4, 8, 18, -1}, {4, 8, 19, -1}, {4, 8, 20, -1}, {4, 8, 21, -1}, {4, 8, 22, -1}, {4, 8, 23, -1}, {4, 8, 24, -1}, {4, 8, 25, -1}, {4, 9, 10, -1}, {4, 9, 11, -1}, {4, 9, 12, -1}, {4, 9, 13, -1}, {4, 9, 14, -1}, {4, 9, 15, -1}, {4, 9, 16, -1}, {4, 9, 17, -1}, {4, 9, 18, -1}, {4, 9, 19, -1}, {4, 9, 20, -1}, {4, 9, 21, -1}, {4, 9, 22, -1}, {4, 9, 23, -1}, {4, 9, 24, -1}, {4, 9, 25, -1}, {4, 10, 11, -1}, {4, 10, 12, -1}, {4, 10, 13, -1}, {4, 10, 14, -1}, {4, 10, 15, -1}, {4, 10, 16, -1}, {4, 10, 17, -1}, {4, 10, 18, -1}, {4, 10, 19, -1}, {4, 10, 20, -1}, {4, 10, 21, -1}, {4, 10, 22, -1}, {4, 10, 23, -1}, {4, 10, 24, -1}, {4, 10, 25, -1}, {4, 11, 12, -1}, {4, 11, 13, -1}, {4, 11, 14, -1}, {4, 11, 15, -1}, {4, 11, 16, -1}, {4, 11, 17, -1}, {4, 11, 18, -1}, {4, 11, 19, -1}, {4, 11, 20, -1}, {4, 11, 21, -1}, {4, 11, 22, -1}, {4, 11, 23, -1}, {4, 11, 24, -1}, {4, 11, 25, -1}, {4, 12, 13, -1}, {4, 12, 14, -1}, {4, 12, 15, -1}, {4, 12, 16, -1}, {4, 12, 17, -1}, {4, 12, 18, -1}, {4, 12, 19, -1}, {4, 12, 20, -1}, {4, 12, 21, -1}, {4, 12, 22, -1}, {4, 12, 23, -1}, {4, 12, 24, -1}, {4, 12, 25, -1}, {4, 13, 14, -1}, {4, 13, 15, -1}, {4, 13, 16, -1}, {4, 13, 17, -1}, {4, 13, 18, -1}, {4, 13, 19, -1}, {4, 13, 20, -1}, {4, 13, 21, -1}, {4, 13, 22, -1}, {4, 13, 23, -1}, {4, 13, 24, -1}, {4, 13, 25, -1}, {4, 14, 15, -1}, {4, 14, 16, -1}, {4, 14, 17, -1}, {4, 14, 18, -1}, {4, 14, 19, -1}, {4, 14, 20, -1}, {4, 14, 21, -1}, {4, 14, 22, -1}, {4, 14, 23, -1}, {4, 14, 24, -1}, {4, 14, 25, -1}, {4, 15, 16, -1}, {4, 15, 17, -1}, {4, 15, 18, -1}, {4, 15, 19, -1}, {4, 15, 20, -1}, {4, 15, 21, -1}, {4, 15, 22, -1}, {4, 15, 23, -1}, {4, 15, 24, -1}, {4, 15, 25, -1}, {4, 16, 17, -1}, {4, 16, 18, -1}, {4, 16, 19, -1}, {4, 16, 20, -1}, {4, 16, 21, -1}, {4, 16, 22, -1}, {4, 16, 23, -1}, {4, 16, 24, -1}, {4, 16, 25, -1}, {4, 17, 18, -1}, {4, 17, 19, -1}, {4, 17, 20, -1}, {4, 17, 21, -1}, {4, 17, 22, -1}, {4, 17, 23, -1}, {4, 17, 24, -1}, {4, 17, 25, -1}, {4, 18, 19, -1}, {4, 18, 20, -1}, {4, 18, 21, -1}, {4, 18, 22, -1}, {4, 18, 23, -1}, {4, 18, 24, -1}, {4, 18, 25, -1}, {4, 19, 20, -1}, {4, 19, 21, -1}, {4, 19, 22, -1}, {4, 19, 23, -1}, {4, 19, 24, -1}, {4, 19, 25, -1}, {4, 20, 21, -1}, {4, 20, 22, -1}, {4, 20, 23, -1}, {4, 20, 24, -1}, {4, 20, 25, -1}, {4, 21, 22, -1}, {4, 21, 23, -1}, {4, 21, 24, -1}, {4, 21, 25, -1}, {4, 22, 23, -1}, {4, 22, 24, -1}, {4, 22, 25, -1}, {4, 23, 24, -1}, {4, 23, 25, -1}, {4, 24, 25, -1}, {5, 6, 7, -1}, {5, 6, 8, -1}, {5, 6, 9, -1}, {5, 6, 10, -1}, {5, 6, 11, -1}, {5, 6, 12, -1}, {5, 6, 13, -1}, {5, 6, 14, -1}, {5, 6, 15, -1}, {5, 6, 16, -1}, {5, 6, 17, -1}, {5, 6, 18, -1}, {5, 6, 19, -1}, {5, 6, 20, -1}, {5, 6, 21, -1}, {5, 6, 22, -1}, {5, 6, 23, -1}, {5, 6, 24, -1}, {5, 6, 25, -1}, {5, 7, 8, -1}, {5, 7, 9, -1}, {5, 7, 10, -1}, {5, 7, 11, -1}, {5, 7, 12, -1}, {5, 7, 13, -1}, {5, 7, 14, -1}, {5, 7, 15, -1}, {5, 7, 16, -1}, {5, 7, 17, -1}, {5, 7, 18, -1}, {5, 7, 19, -1}, {5, 7, 20, -1}, {5, 7, 21, -1}, {5, 7, 22, -1}, {5, 7, 23, -1}, {5, 7, 24, -1}, {5, 7, 25, -1}, {5, 8, 9, -1}, {5, 8, 10, -1}, {5, 8, 11, -1}, {5, 8, 12, -1}, {5, 8, 13, -1}, {5, 8, 14, -1}, {5, 8, 15, -1}, {5, 8, 16, -1}, {5, 8, 17, -1}, {5, 8, 18, -1}, {5, 8, 19, -1}, {5, 8, 20, -1}, {5, 8, 21, -1}, {5, 8, 22, -1}, {5, 8, 23, -1}, {5, 8, 24, -1}, {5, 8, 25, -1}, {5, 9, 10, -1}, {5, 9, 11, -1}, {5, 9, 12, -1}, {5, 9, 13, -1}, {5, 9, 14, -1}, {5, 9, 15, -1}, {5, 9, 16, -1}, {5, 9, 17, -1}, {5, 9, 18, -1}, {5, 9, 19, -1}, {5, 9, 20, -1}, {5, 9, 21, -1}, {5, 9, 22, -1}, {5, 9, 23, -1}, {5, 9, 24, -1}, {5, 9, 25, -1}, {5, 10, 11, -1}, {5, 10, 12, -1}, {5, 10, 13, -1}, {5, 10, 14, -1}, {5, 10, 15, -1}, {5, 10, 16, -1}, {5, 10, 17, -1}, {5, 10, 18, -1}, {5, 10, 19, -1}, {5, 10, 20, -1}, {5, 10, 21, -1}, {5, 10, 22, -1}, {5, 10, 23, -1}, {5, 10, 24, -1}, {5, 10, 25, -1}, {5, 11, 12, -1}, {5, 11, 13, -1}, {5, 11, 14, -1}, {5, 11, 15, -1}, {5, 11, 16, -1}, {5, 11, 17, -1}, {5, 11, 18, -1}, {5, 11, 19, -1}, {5, 11, 20, -1}, {5, 11, 21, -1}, {5, 11, 22, -1}, {5, 11, 23, -1}, {5, 11, 24, -1}, {5, 11, 25, -1}, {5, 12, 13, -1}, {5, 12, 14, -1}, {5, 12, 15, -1}, {5, 12, 16, -1}, {5, 12, 17, -1}, {5, 12, 18, -1}, {5, 12, 19, -1}, {5, 12, 20, -1}, {5, 12, 21, -1}, {5, 12, 22, -1}, {5, 12, 23, -1}, {5, 12, 24, -1}, {5, 12, 25, -1}, {5, 13, 14, -1}, {5, 13, 15, -1}, {5, 13, 16, -1}, {5, 13, 17, -1}, {5, 13, 18, -1}, {5, 13, 19, -1}, {5, 13, 20, -1}, {5, 13, 21, -1}, {5, 13, 22, -1}, {5, 13, 23, -1}, {5, 13, 24, -1}, {5, 13, 25, -1}, {5, 14, 15, -1}, {5, 14, 16, -1}, {5, 14, 17, -1}, {5, 14, 18, -1}, {5, 14, 19, -1}, {5, 14, 20, -1}, {5, 14, 21, -1}, {5, 14, 22, -1}, {5, 14, 23, -1}, {5, 14, 24, -1}, {5, 14, 25, -1}, {5, 15, 16, -1}, {5, 15, 17, -1}, {5, 15, 18, -1}, {5, 15, 19, -1}, {5, 15, 20, -1}, {5, 15, 21, -1}, {5, 15, 22, -1}, {5, 15, 23, -1}, {5, 15, 24, -1}, {5, 15, 25, -1}, {5, 16, 17, -1}, {5, 16, 18, -1}, {5, 16, 19, -1}, {5, 16, 20, -1}, {5, 16, 21, -1}, {5, 16, 22, -1}, {5, 16, 23, -1}, {5, 16, 24, -1}, {5, 16, 25, -1}, {5, 17, 18, -1}, {5, 17, 19, -1}, {5, 17, 20, -1}, {5, 17, 21, -1}, {5, 17, 22, -1}, {5, 17, 23, -1}, {5, 17, 24, -1}, {5, 17, 25, -1}, {5, 18, 19, -1}, {5, 18, 20, -1}, {5, 18, 21, -1}, {5, 18, 22, -1}, {5, 18, 23, -1}, {5, 18, 24, -1}, {5, 18, 25, -1}, {5, 19, 20, -1}, {5, 19, 21, -1}, {5, 19, 22, -1}, {5, 19, 23, -1}, {5, 19, 24, -1}, {5, 19, 25, -1}, {5, 20, 21, -1}, {5, 20, 22, -1}, {5, 20, 23, -1}, {5, 20, 24, -1}, {5, 20, 25, -1}, {5, 21, 22, -1}, {5, 21, 23, -1}, {5, 21, 24, -1}, {5, 21, 25, -1}, {5, 22, 23, -1}, {5, 22, 24, -1}, {5, 22, 25, -1}, {5, 23, 24, -1}, {5, 23, 25, -1}, {5, 24, 25, -1}, {6, 7, 8, -1}, {6, 7, 9, -1}, {6, 7, 10, -1}, {6, 7, 11, -1}, {6, 7, 12, -1}, {6, 7, 13, -1}, {6, 7, 14, -1}, {6, 7, 15, -1}, {6, 7, 16, -1}, {6, 7, 17, -1}, {6, 7, 18, -1}, {6, 7, 19, -1}, {6, 7, 20, -1}, {6, 7, 21, -1}, {6, 7, 22, -1}, {6, 7, 23, -1}, {6, 7, 24, -1}, {6, 7, 25, -1}, {6, 8, 9, -1}, {6, 8, 10, -1}, {6, 8, 11, -1}, {6, 8, 12, -1}, {6, 8, 13, -1}, {6, 8, 14, -1}, {6, 8, 15, -1}, {6, 8, 16, -1}, {6, 8, 17, -1}, {6, 8, 18, -1}, {6, 8, 19, -1}, {6, 8, 20, -1}, {6, 8, 21, -1}, {6, 8, 22, -1}, {6, 8, 23, -1}, {6, 8, 24, -1}, {6, 8, 25, -1}, {6, 9, 10, -1}, {6, 9, 11, -1}, {6, 9, 12, -1}, {6, 9, 13, -1}, {6, 9, 14, -1}, {6, 9, 15, -1}, {6, 9, 16, -1}, {6, 9, 17, -1}, {6, 9, 18, -1}, {6, 9, 19, -1}, {6, 9, 20, -1}, {6, 9, 21, -1}, {6, 9, 22, -1}, {6, 9, 23, -1}, {6, 9, 24, -1}, {6, 9, 25, -1}, {6, 10, 11, -1}, {6, 10, 12, -1}, {6, 10, 13, -1}, {6, 10, 14, -1}, {6, 10, 15, -1}, {6, 10, 16, -1}, {6, 10, 17, -1}, {6, 10, 18, -1}, {6, 10, 19, -1}, {6, 10, 20, -1}, {6, 10, 21, -1}, {6, 10, 22, -1}, {6, 10, 23, -1}, {6, 10, 24, -1}, {6, 10, 25, -1}, {6, 11, 12, -1}, {6, 11, 13, -1}, {6, 11, 14, -1}, {6, 11, 15, -1}, {6, 11, 16, -1}, {6, 11, 17, -1}, {6, 11, 18, -1}, {6, 11, 19, -1}, {6, 11, 20, -1}, {6, 11, 21, -1}, {6, 11, 22, -1}, {6, 11, 23, -1}, {6, 11, 24, -1}, {6, 11, 25, -1}, {6, 12, 13, -1}, {6, 12, 14, -1}, {6, 12, 15, -1}, {6, 12, 16, -1}, {6, 12, 17, -1}, {6, 12, 18, -1}, {6, 12, 19, -1}, {6, 12, 20, -1}, {6, 12, 21, -1}, {6, 12, 22, -1}, {6, 12, 23, -1}, {6, 12, 24, -1}, {6, 12, 25, -1}, {6, 13, 14, -1}, {6, 13, 15, -1}, {6, 13, 16, -1}, {6, 13, 17, -1}, {6, 13, 18, -1}, {6, 13, 19, -1}, {6, 13, 20, -1}, {6, 13, 21, -1}, {6, 13, 22, -1}, {6, 13, 23, -1}, {6, 13, 24, -1}, {6, 13, 25, -1}, {6, 14, 15, -1}, {6, 14, 16, -1}, {6, 14, 17, -1}, {6, 14, 18, -1}, {6, 14, 19, -1}, {6, 14, 20, -1}, {6, 14, 21, -1}, {6, 14, 22, -1}, {6, 14, 23, -1}, {6, 14, 24, -1}, {6, 14, 25, -1}, {6, 15, 16, -1}, {6, 15, 17, -1}, {6, 15, 18, -1}, {6, 15, 19, -1}, {6, 15, 20, -1}, {6, 15, 21, -1}, {6, 15, 22, -1}, {6, 15, 23, -1}, {6, 15, 24, -1}, {6, 15, 25, -1}, {6, 16, 17, -1}, {6, 16, 18, -1}, {6, 16, 19, -1}, {6, 16, 20, -1}, {6, 16, 21, -1}, {6, 16, 22, -1}, {6, 16, 23, -1}, {6, 16, 24, -1}, {6, 16, 25, -1}, {6, 17, 18, -1}, {6, 17, 19, -1}, {6, 17, 20, -1}, {6, 17, 21, -1}, {6, 17, 22, -1}, {6, 17, 23, -1}, {6, 17, 24, -1}, {6, 17, 25, -1}, {6, 18, 19, -1}, {6, 18, 20, -1}, {6, 18, 21, -1}, {6, 18, 22, -1}, {6, 18, 23, -1}, {6, 18, 24, -1}, {6, 18, 25, -1}, {6, 19, 20, -1}, {6, 19, 21, -1}, {6, 19, 22, -1}, {6, 19, 23, -1}, {6, 19, 24, -1}, {6, 19, 25, -1}, {6, 20, 21, -1}, {6, 20, 22, -1}, {6, 20, 23, -1}, {6, 20, 24, -1}, {6, 20, 25, -1}, {6, 21, 22, -1}, {6, 21, 23, -1}, {6, 21, 24, -1}, {6, 21, 25, -1}, {6, 22, 23, -1}, {6, 22, 24, -1}, {6, 22, 25, -1}, {6, 23, 24, -1}, {6, 23, 25, -1}, {6, 24, 25, -1}, {7, 8, 9, -1}, {7, 8, 10, -1}, {7, 8, 11, -1}, {7, 8, 12, -1}, {7, 8, 13, -1}, {7, 8, 14, -1}, {7, 8, 15, -1}, {7, 8, 16, -1}, {7, 8, 17, -1}, {7, 8, 18, -1}, {7, 8, 19, -1}, {7, 8, 20, -1}, {7, 8, 21, -1}, {7, 8, 22, -1}, {7, 8, 23, -1}, {7, 8, 24, -1}, {7, 8, 25, -1}, {7, 9, 10, -1}, {7, 9, 11, -1}, {7, 9, 12, -1}, {7, 9, 13, -1}, {7, 9, 14, -1}, {7, 9, 15, -1}, {7, 9, 16, -1}, {7, 9, 17, -1}, {7, 9, 18, -1}, {7, 9, 19, -1}, {7, 9, 20, -1}, {7, 9, 21, -1}, {7, 9, 22, -1}, {7, 9, 23, -1}, {7, 9, 24, -1}, {7, 9, 25, -1}, {7, 10, 11, -1}, {7, 10, 12, -1}, {7, 10, 13, -1}, {7, 10, 14, -1}, {7, 10, 15, -1}, {7, 10, 16, -1}, {7, 10, 17, -1}, {7, 10, 18, -1}, {7, 10, 19, -1}, {7, 10, 20, -1}, {7, 10, 21, -1}, {7, 10, 22, -1}, {7, 10, 23, -1}, {7, 10, 24, -1}, {7, 10, 25, -1}, {7, 11, 12, -1}, {7, 11, 13, -1}, {7, 11, 14, -1}, {7, 11, 15, -1}, {7, 11, 16, -1}, {7, 11, 17, -1}, {7, 11, 18, -1}, {7, 11, 19, -1}, {7, 11, 20, -1}, {7, 11, 21, -1}, {7, 11, 22, -1}, {7, 11, 23, -1}, {7, 11, 24, -1}, {7, 11, 25, -1}, {7, 12, 13, -1}, {7, 12, 14, -1}, {7, 12, 15, -1}, {7, 12, 16, -1}, {7, 12, 17, -1}, {7, 12, 18, -1}, {7, 12, 19, -1}, {7, 12, 20, -1}, {7, 12, 21, -1}, {7, 12, 22, -1}, {7, 12, 23, -1}, {7, 12, 24, -1}, {7, 12, 25, -1}, {7, 13, 14, -1}, {7, 13, 15, -1}, {7, 13, 16, -1}, {7, 13, 17, -1}, {7, 13, 18, -1}, {7, 13, 19, -1}, {7, 13, 20, -1}, {7, 13, 21, -1}, {7, 13, 22, -1}, {7, 13, 23, -1}, {7, 13, 24, -1}, {7, 13, 25, -1}, {7, 14, 15, -1}, {7, 14, 16, -1}, {7, 14, 17, -1}, {7, 14, 18, -1}, {7, 14, 19, -1}, {7, 14, 20, -1}, {7, 14, 21, -1}, {7, 14, 22, -1}, {7, 14, 23, -1}, {7, 14, 24, -1}, {7, 14, 25, -1}, {7, 15, 16, -1}, {7, 15, 17, -1}, {7, 15, 18, -1}, {7, 15, 19, -1}, {7, 15, 20, -1}, {7, 15, 21, -1}, {7, 15, 22, -1}, {7, 15, 23, -1}, {7, 15, 24, -1}, {7, 15, 25, -1}, {7, 16, 17, -1}, {7, 16, 18, -1}, {7, 16, 19, -1}, {7, 16, 20, -1}, {7, 16, 21, -1}, {7, 16, 22, -1}, {7, 16, 23, -1}, {7, 16, 24, -1}, {7, 16, 25, -1}, {7, 17, 18, -1}, {7, 17, 19, -1}, {7, 17, 20, -1}, {7, 17, 21, -1}, {7, 17, 22, -1}, {7, 17, 23, -1}, {7, 17, 24, -1}, {7, 17, 25, -1}, {7, 18, 19, -1}, {7, 18, 20, -1}, {7, 18, 21, -1}, {7, 18, 22, -1}, {7, 18, 23, -1}, {7, 18, 24, -1}, {7, 18, 25, -1}, {7, 19, 20, -1}, {7, 19, 21, -1}, {7, 19, 22, -1}, {7, 19, 23, -1}, {7, 19, 24, -1}, {7, 19, 25, -1}, {7, 20, 21, -1}, {7, 20, 22, -1}, {7, 20, 23, -1}, {7, 20, 24, -1}, {7, 20, 25, -1}, {7, 21, 22, -1}, {7, 21, 23, -1}, {7, 21, 24, -1}, {7, 21, 25, -1}, {7, 22, 23, -1}, {7, 22, 24, -1}, {7, 22, 25, -1}, {7, 23, 24, -1}, {7, 23, 25, -1}, {7, 24, 25, -1}, {8, 9, 10, -1}, {8, 9, 11, -1}, {8, 9, 12, -1}, {8, 9, 13, -1}, {8, 9, 14, -1}, {8, 9, 15, -1}, {8, 9, 16, -1}, {8, 9, 17, -1}, {8, 9, 18, -1}, {8, 9, 19, -1}, {8, 9, 20, -1}, {8, 9, 21, -1}, {8, 9, 22, -1}, {8, 9, 23, -1}, {8, 9, 24, -1}, {8, 9, 25, -1}, {8, 10, 11, -1}, {8, 10, 12, -1}, {8, 10, 13, -1}, {8, 10, 14, -1}, {8, 10, 15, -1}, {8, 10, 16, -1}, {8, 10, 17, -1}, {8, 10, 18, -1}, {8, 10, 19, -1}, {8, 10, 20, -1}, {8, 10, 21, -1}, {8, 10, 22, -1}, {8, 10, 23, -1}, {8, 10, 24, -1}, {8, 10, 25, -1}, {8, 11, 12, -1}, {8, 11, 13, -1}, {8, 11, 14, -1}, {8, 11, 15, -1}, {8, 11, 16, -1}, {8, 11, 17, -1}, {8, 11, 18, -1}, {8, 11, 19, -1}, {8, 11, 20, -1}, {8, 11, 21, -1}, {8, 11, 22, -1}, {8, 11, 23, -1}, {8, 11, 24, -1}, {8, 11, 25, -1}, {8, 12, 13, -1}, {8, 12, 14, -1}, {8, 12, 15, -1}, {8, 12, 16, -1}, {8, 12, 17, -1}, {8, 12, 18, -1}, {8, 12, 19, -1}, {8, 12, 20, -1}, {8, 12, 21, -1}, {8, 12, 22, -1}, {8, 12, 23, -1}, {8, 12, 24, -1}, {8, 12, 25, -1}, {8, 13, 14, -1}, {8, 13, 15, -1}, {8, 13, 16, -1}, {8, 13, 17, -1}, {8, 13, 18, -1}, {8, 13, 19, -1}, {8, 13, 20, -1}, {8, 13, 21, -1}, {8, 13, 22, -1}, {8, 13, 23, -1}, {8, 13, 24, -1}, {8, 13, 25, -1}, {8, 14, 15, -1}, {8, 14, 16, -1}, {8, 14, 17, -1}, {8, 14, 18, -1}, {8, 14, 19, -1}, {8, 14, 20, -1}, {8, 14, 21, -1}, {8, 14, 22, -1}, {8, 14, 23, -1}, {8, 14, 24, -1}, {8, 14, 25, -1}, {8, 15, 16, -1}, {8, 15, 17, -1}, {8, 15, 18, -1}, {8, 15, 19, -1}, {8, 15, 20, -1}, {8, 15, 21, -1}, {8, 15, 22, -1}, {8, 15, 23, -1}, {8, 15, 24, -1}, {8, 15, 25, -1}, {8, 16, 17, -1}, {8, 16, 18, -1}, {8, 16, 19, -1}, {8, 16, 20, -1}, {8, 16, 21, -1}, {8, 16, 22, -1}, {8, 16, 23, -1}, {8, 16, 24, -1}, {8, 16, 25, -1}, {8, 17, 18, -1}, {8, 17, 19, -1}, {8, 17, 20, -1}, {8, 17, 21, -1}, {8, 17, 22, -1}, {8, 17, 23, -1}, {8, 17, 24, -1}, {8, 17, 25, -1}, {8, 18, 19, -1}, {8, 18, 20, -1}, {8, 18, 21, -1}, {8, 18, 22, -1}, {8, 18, 23, -1}, {8, 18, 24, -1}, {8, 18, 25, -1}, {8, 19, 20, -1}, {8, 19, 21, -1}, {8, 19, 22, -1}, {8, 19, 23, -1}, {8, 19, 24, -1}, {8, 19, 25, -1}, {8, 20, 21, -1}, {8, 20, 22, -1}, {8, 20, 23, -1}, {8, 20, 24, -1}, {8, 20, 25, -1}, {8, 21, 22, -1}, {8, 21, 23, -1}, {8, 21, 24, -1}, {8, 21, 25, -1}, {8, 22, 23, -1}, {8, 22, 24, -1}, {8, 22, 25, -1}, {8, 23, 24, -1}, {8, 23, 25, -1}, {8, 24, 25, -1}, {9, 10, 11, -1}, {9, 10, 12, -1}, {9, 10, 13, -1}, {9, 10, 14, -1}, {9, 10, 15, -1}, {9, 10, 16, -1}, {9, 10, 17, -1}, {9, 10, 18, -1}, {9, 10, 19, -1}, {9, 10, 20, -1}, {9, 10, 21, -1}, {9, 10, 22, -1}, {9, 10, 23, -1}, {9, 10, 24, -1}, {9, 10, 25, -1}, {9, 11, 12, -1}, {9, 11, 13, -1}, {9, 11, 14, -1}, {9, 11, 15, -1}, {9, 11, 16, -1}, {9, 11, 17, -1}, {9, 11, 18, -1}, {9, 11, 19, -1}, {9, 11, 20, -1}, {9, 11, 21, -1}, {9, 11, 22, -1}, {9, 11, 23, -1}, {9, 11, 24, -1}, {9, 11, 25, -1}, {9, 12, 13, -1}, {9, 12, 14, -1}, {9, 12, 15, -1}, {9, 12, 16, -1}, {9, 12, 17, -1}, {9, 12, 18, -1}, {9, 12, 19, -1}, {9, 12, 20, -1}, {9, 12, 21, -1}, {9, 12, 22, -1}, {9, 12, 23, -1}, {9, 12, 24, -1}, {9, 12, 25, -1}, {9, 13, 14, -1}, {9, 13, 15, -1}, {9, 13, 16, -1}, {9, 13, 17, -1}, {9, 13, 18, -1}, {9, 13, 19, -1}, {9, 13, 20, -1}, {9, 13, 21, -1}, {9, 13, 22, -1}, {9, 13, 23, -1}, {9, 13, 24, -1}, {9, 13, 25, -1}, {9, 14, 15, -1}, {9, 14, 16, -1}, {9, 14, 17, -1}, {9, 14, 18, -1}, {9, 14, 19, -1}, {9, 14, 20, -1}, {9, 14, 21, -1}, {9, 14, 22, -1}, {9, 14, 23, -1}, {9, 14, 24, -1}, {9, 14, 25, -1}, {9, 15, 16, -1}, {9, 15, 17, -1}, {9, 15, 18, -1}, {9, 15, 19, -1}, {9, 15, 20, -1}, {9, 15, 21, -1}, {9, 15, 22, -1}, {9, 15, 23, -1}, {9, 15, 24, -1}, {9, 15, 25, -1}, {9, 16, 17, -1}, {9, 16, 18, -1}, {9, 16, 19, -1}, {9, 16, 20, -1}, {9, 16, 21, -1}, {9, 16, 22, -1}, {9, 16, 23, -1}, {9, 16, 24, -1}, {9, 16, 25, -1}, {9, 17, 18, -1}, {9, 17, 19, -1}, {9, 17, 20, -1}, {9, 17, 21, -1}, {9, 17, 22, -1}, {9, 17, 23, -1}, {9, 17, 24, -1}, {9, 17, 25, -1}, {9, 18, 19, -1}, {9, 18, 20, -1}, {9, 18, 21, -1}, {9, 18, 22, -1}, {9, 18, 23, -1}, {9, 18, 24, -1}, {9, 18, 25, -1}, {9, 19, 20, -1}, {9, 19, 21, -1}, {9, 19, 22, -1}, {9, 19, 23, -1}, {9, 19, 24, -1}, {9, 19, 25, -1}, {9, 20, 21, -1}, {9, 20, 22, -1}, {9, 20, 23, -1}, {9, 20, 24, -1}, {9, 20, 25, -1}, {9, 21, 22, -1}, {9, 21, 23, -1}, {9, 21, 24, -1}, {9, 21, 25, -1}, {9, 22, 23, -1}, {9, 22, 24, -1}, {9, 22, 25, -1}, {9, 23, 24, -1}, {9, 23, 25, -1}, {9, 24, 25, -1}, {10, 11, 12, -1}, {10, 11, 13, -1}, {10, 11, 14, -1}, {10, 11, 15, -1}, {10, 11, 16, -1}, {10, 11, 17, -1}, {10, 11, 18, -1}, {10, 11, 19, -1}, {10, 11, 20, -1}, {10, 11, 21, -1}, {10, 11, 22, -1}, {10, 11, 23, -1}, {10, 11, 24, -1}, {10, 11, 25, -1}, {10, 12, 13, -1}, {10, 12, 14, -1}, {10, 12, 15, -1}, {10, 12, 16, -1}, {10, 12, 17, -1}, {10, 12, 18, -1}, {10, 12, 19, -1}, {10, 12, 20, -1}, {10, 12, 21, -1}, {10, 12, 22, -1}, {10, 12, 23, -1}, {10, 12, 24, -1}, {10, 12, 25, -1}, {10, 13, 14, -1}, {10, 13, 15, -1}, {10, 13, 16, -1}, {10, 13, 17, -1}, {10, 13, 18, -1}, {10, 13, 19, -1}, {10, 13, 20, -1}, {10, 13, 21, -1}, {10, 13, 22, -1}, {10, 13, 23, -1}, {10, 13, 24, -1}, {10, 13, 25, -1}, {10, 14, 15, -1}, {10, 14, 16, -1}, {10, 14, 17, -1}, {10, 14, 18, -1}, {10, 14, 19, -1}, {10, 14, 20, -1}, {10, 14, 21, -1}, {10, 14, 22, -1}, {10, 14, 23, -1}, {10, 14, 24, -1}, {10, 14, 25, -1}, {10, 15, 16, -1}, {10, 15, 17, -1}, {10, 15, 18, -1}, {10, 15, 19, -1}, {10, 15, 20, -1}, {10, 15, 21, -1}, {10, 15, 22, -1}, {10, 15, 23, -1}, {10, 15, 24, -1}, {10, 15, 25, -1}, {10, 16, 17, -1}, {10, 16, 18, -1}, {10, 16, 19, -1}, {10, 16, 20, -1}, {10, 16, 21, -1}, {10, 16, 22, -1}, {10, 16, 23, -1}, {10, 16, 24, -1}, {10, 16, 25, -1}, {10, 17, 18, -1}, {10, 17, 19, -1}, {10, 17, 20, -1}, {10, 17, 21, -1}, {10, 17, 22, -1}, {10, 17, 23, -1}, {10, 17, 24, -1}, {10, 17, 25, -1}, {10, 18, 19, -1}, {10, 18, 20, -1}, {10, 18, 21, -1}, {10, 18, 22, -1}, {10, 18, 23, -1}, {10, 18, 24, -1}, {10, 18, 25, -1}, {10, 19, 20, -1}, {10, 19, 21, -1}, {10, 19, 22, -1}, {10, 19, 23, -1}, {10, 19, 24, -1}, {10, 19, 25, -1}, {10, 20, 21, -1}, {10, 20, 22, -1}, {10, 20, 23, -1}, {10, 20, 24, -1}, {10, 20, 25, -1}, {10, 21, 22, -1}, {10, 21, 23, -1}, {10, 21, 24, -1}, {10, 21, 25, -1}, {10, 22, 23, -1}, {10, 22, 24, -1}, {10, 22, 25, -1}, {10, 23, 24, -1}, {10, 23, 25, -1}, {10, 24, 25, -1}, {11, 12, 13, -1}, {11, 12, 14, -1}, {11, 12, 15, -1}, {11, 12, 16, -1}, {11, 12, 17, -1}, {11, 12, 18, -1}, {11, 12, 19, -1}, {11, 12, 20, -1}, {11, 12, 21, -1}, {11, 12, 22, -1}, {11, 12, 23, -1}, {11, 12, 24, -1}, {11, 12, 25, -1}, {11, 13, 14, -1}, {11, 13, 15, -1}, {11, 13, 16, -1}, {11, 13, 17, -1}, {11, 13, 18, -1}, {11, 13, 19, -1}, {11, 13, 20, -1}, {11, 13, 21, -1}, {11, 13, 22, -1}, {11, 13, 23, -1}, {11, 13, 24, -1}, {11, 13, 25, -1}, {11, 14, 15, -1}, {11, 14, 16, -1}, {11, 14, 17, -1}, {11, 14, 18, -1}, {11, 14, 19, -1}, {11, 14, 20, -1}, {11, 14, 21, -1}, {11, 14, 22, -1}, {11, 14, 23, -1}, {11, 14, 24, -1}, {11, 14, 25, -1}, {11, 15, 16, -1}, {11, 15, 17, -1}, {11, 15, 18, -1}, {11, 15, 19, -1}, {11, 15, 20, -1}, {11, 15, 21, -1}, {11, 15, 22, -1}, {11, 15, 23, -1}, {11, 15, 24, -1}, {11, 15, 25, -1}, {11, 16, 17, -1}, {11, 16, 18, -1}, {11, 16, 19, -1}, {11, 16, 20, -1}, {11, 16, 21, -1}, {11, 16, 22, -1}, {11, 16, 23, -1}, {11, 16, 24, -1}, {11, 16, 25, -1}, {11, 17, 18, -1}, {11, 17, 19, -1}, {11, 17, 20, -1}, {11, 17, 21, -1}, {11, 17, 22, -1}, {11, 17, 23, -1}, {11, 17, 24, -1}, {11, 17, 25, -1}, {11, 18, 19, -1}, {11, 18, 20, -1}, {11, 18, 21, -1}, {11, 18, 22, -1}, {11, 18, 23, -1}, {11, 18, 24, -1}, {11, 18, 25, -1}, {11, 19, 20, -1}, {11, 19, 21, -1}, {11, 19, 22, -1}, {11, 19, 23, -1}, {11, 19, 24, -1}, {11, 19, 25, -1}, {11, 20, 21, -1}, {11, 20, 22, -1}, {11, 20, 23, -1}, {11, 20, 24, -1}, {11, 20, 25, -1}, {11, 21, 22, -1}, {11, 21, 23, -1}, {11, 21, 24, -1}, {11, 21, 25, -1}, {11, 22, 23, -1}, {11, 22, 24, -1}, {11, 22, 25, -1}, {11, 23, 24, -1}, {11, 23, 25, -1}, {11, 24, 25, -1}, {12, 13, 14, -1}, {12, 13, 15, -1}, {12, 13, 16, -1}, {12, 13, 17, -1}, {12, 13, 18, -1}, {12, 13, 19, -1}, {12, 13, 20, -1}, {12, 13, 21, -1}, {12, 13, 22, -1}, {12, 13, 23, -1}, {12, 13, 24, -1}, {12, 13, 25, -1}, {12, 14, 15, -1}, {12, 14, 16, -1}, {12, 14, 17, -1}, {12, 14, 18, -1}, {12, 14, 19, -1}, {12, 14, 20, -1}, {12, 14, 21, -1}, {12, 14, 22, -1}, {12, 14, 23, -1}, {12, 14, 24, -1}, {12, 14, 25, -1}, {12, 15, 16, -1}, {12, 15, 17, -1}, {12, 15, 18, -1}, {12, 15, 19, -1}, {12, 15, 20, -1}, {12, 15, 21, -1}, {12, 15, 22, -1}, {12, 15, 23, -1}, {12, 15, 24, -1}, {12, 15, 25, -1}, {12, 16, 17, -1}, {12, 16, 18, -1}, {12, 16, 19, -1}, {12, 16, 20, -1}, {12, 16, 21, -1}, {12, 16, 22, -1}, {12, 16, 23, -1}, {12, 16, 24, -1}, {12, 16, 25, -1}, {12, 17, 18, -1}, {12, 17, 19, -1}, {12, 17, 20, -1}, {12, 17, 21, -1}, {12, 17, 22, -1}, {12, 17, 23, -1}, {12, 17, 24, -1}, {12, 17, 25, -1}, {12, 18, 19, -1}, {12, 18, 20, -1}, {12, 18, 21, -1}, {12, 18, 22, -1}, {12, 18, 23, -1}, {12, 18, 24, -1}, {12, 18, 25, -1}, {12, 19, 20, -1}, {12, 19, 21, -1}, {12, 19, 22, -1}, {12, 19, 23, -1}, {12, 19, 24, -1}, {12, 19, 25, -1}, {12, 20, 21, -1}, {12, 20, 22, -1}, {12, 20, 23, -1}, {12, 20, 24, -1}, {12, 20, 25, -1}, {12, 21, 22, -1}, {12, 21, 23, -1}, {12, 21, 24, -1}, {12, 21, 25, -1}, {12, 22, 23, -1}, {12, 22, 24, -1}, {12, 22, 25, -1}, {12, 23, 24, -1}, {12, 23, 25, -1}, {12, 24, 25, -1}, {13, 14, 15, -1}, {13, 14, 16, -1}, {13, 14, 17, -1}, {13, 14, 18, -1}, {13, 14, 19, -1}, {13, 14, 20, -1}, {13, 14, 21, -1}, {13, 14, 22, -1}, {13, 14, 23, -1}, {13, 14, 24, -1}, {13, 14, 25, -1}, {13, 15, 16, -1}, {13, 15, 17, -1}, {13, 15, 18, -1}, {13, 15, 19, -1}, {13, 15, 20, -1}, {13, 15, 21, -1}, {13, 15, 22, -1}, {13, 15, 23, -1}, {13, 15, 24, -1}, {13, 15, 25, -1}, {13, 16, 17, -1}, {13, 16, 18, -1}, {13, 16, 19, -1}, {13, 16, 20, -1}, {13, 16, 21, -1}, {13, 16, 22, -1}, {13, 16, 23, -1}, {13, 16, 24, -1}, {13, 16, 25, -1}, {13, 17, 18, -1}, {13, 17, 19, -1}, {13, 17, 20, -1}, {13, 17, 21, -1}, {13, 17, 22, -1}, {13, 17, 23, -1}, {13, 17, 24, -1}, {13, 17, 25, -1}, {13, 18, 19, -1}, {13, 18, 20, -1}, {13, 18, 21, -1}, {13, 18, 22, -1}, {13, 18, 23, -1}, {13, 18, 24, -1}, {13, 18, 25, -1}, {13, 19, 20, -1}, {13, 19, 21, -1}, {13, 19, 22, -1}, {13, 19, 23, -1}, {13, 19, 24, -1}, {13, 19, 25, -1}, {13, 20, 21, -1}, {13, 20, 22, -1}, {13, 20, 23, -1}, {13, 20, 24, -1}, {13, 20, 25, -1}, {13, 21, 22, -1}, {13, 21, 23, -1}, {13, 21, 24, -1}, {13, 21, 25, -1}, {13, 22, 23, -1}, {13, 22, 24, -1}, {13, 22, 25, -1}, {13, 23, 24, -1}, {13, 23, 25, -1}, {13, 24, 25, -1}, {14, 15, 16, -1}, {14, 15, 17, -1}, {14, 15, 18, -1}, {14, 15, 19, -1}, {14, 15, 20, -1}, {14, 15, 21, -1}, {14, 15, 22, -1}, {14, 15, 23, -1}, {14, 15, 24, -1}, {14, 15, 25, -1}, {14, 16, 17, -1}, {14, 16, 18, -1}, {14, 16, 19, -1}, {14, 16, 20, -1}, {14, 16, 21, -1}, {14, 16, 22, -1}, {14, 16, 23, -1}, {14, 16, 24, -1}, {14, 16, 25, -1}, {14, 17, 18, -1}, {14, 17, 19, -1}, {14, 17, 20, -1}, {14, 17, 21, -1}, {14, 17, 22, -1}, {14, 17, 23, -1}, {14, 17, 24, -1}, {14, 17, 25, -1}, {14, 18, 19, -1}, {14, 18, 20, -1}, {14, 18, 21, -1}, {14, 18, 22, -1}, {14, 18, 23, -1}, {14, 18, 24, -1}, {14, 18, 25, -1}, {14, 19, 20, -1}, {14, 19, 21, -1}, {14, 19, 22, -1}, {14, 19, 23, -1}, {14, 19, 24, -1}, {14, 19, 25, -1}, {14, 20, 21, -1}, {14, 20, 22, -1}, {14, 20, 23, -1}, {14, 20, 24, -1}, {14, 20, 25, -1}, {14, 21, 22, -1}, {14, 21, 23, -1}, {14, 21, 24, -1}, {14, 21, 25, -1}, {14, 22, 23, -1}, {14, 22, 24, -1}, {14, 22, 25, -1}, {14, 23, 24, -1}, {14, 23, 25, -1}, {14, 24, 25, -1}, {15, 16, 17, -1}, {15, 16, 18, -1}, {15, 16, 19, -1}, {15, 16, 20, -1}, {15, 16, 21, -1}, {15, 16, 22, -1}, {15, 16, 23, -1}, {15, 16, 24, -1}, {15, 16, 25, -1}, {15, 17, 18, -1}, {15, 17, 19, -1}, {15, 17, 20, -1}, {15, 17, 21, -1}, {15, 17, 22, -1}, {15, 17, 23, -1}, {15, 17, 24, -1}, {15, 17, 25, -1}, {15, 18, 19, -1}, {15, 18, 20, -1}, {15, 18, 21, -1}, {15, 18, 22, -1}, {15, 18, 23, -1}, {15, 18, 24, -1}, {15, 18, 25, -1}, {15, 19, 20, -1}, {15, 19, 21, -1}, {15, 19, 22, -1}, {15, 19, 23, -1}, {15, 19, 24, -1}, {15, 19, 25, -1}, {15, 20, 21, -1}, {15, 20, 22, -1}, {15, 20, 23, -1}, {15, 20, 24, -1}, {15, 20, 25, -1}, {15, 21, 22, -1}, {15, 21, 23, -1}, {15, 21, 24, -1}, {15, 21, 25, -1}, {15, 22, 23, -1}, {15, 22, 24, -1}, {15, 22, 25, -1}, {15, 23, 24, -1}, {15, 23, 25, -1}, {15, 24, 25, -1}, {16, 17, 18, -1}, {16, 17, 19, -1}, {16, 17, 20, -1}, {16, 17, 21, -1}, {16, 17, 22, -1}, {16, 17, 23, -1}, {16, 17, 24, -1}, {16, 17, 25, -1}, {16, 18, 19, -1}, {16, 18, 20, -1}, {16, 18, 21, -1}, {16, 18, 22, -1}, {16, 18, 23, -1}, {16, 18, 24, -1}, {16, 18, 25, -1}, {16, 19, 20, -1}, {16, 19, 21, -1}, {16, 19, 22, -1}, {16, 19, 23, -1}, {16, 19, 24, -1}, {16, 19, 25, -1}, {16, 20, 21, -1}, {16, 20, 22, -1}, {16, 20, 23, -1}, {16, 20, 24, -1}, {16, 20, 25, -1}, {16, 21, 22, -1}, {16, 21, 23, -1}, {16, 21, 24, -1}, {16, 21, 25, -1}, {16, 22, 23, -1}, {16, 22, 24, -1}, {16, 22, 25, -1}, {16, 23, 24, -1}, {16, 23, 25, -1}, {16, 24, 25, -1}, {17, 18, 19, -1}, {17, 18, 20, -1}, {17, 18, 21, -1}, {17, 18, 22, -1}, {17, 18, 23, -1}, {17, 18, 24, -1}, {17, 18, 25, -1}, {17, 19, 20, -1}, {17, 19, 21, -1}, {17, 19, 22, -1}, {17, 19, 23, -1}, {17, 19, 24, -1}, {17, 19, 25, -1}, {17, 20, 21, -1}, {17, 20, 22, -1}, {17, 20, 23, -1}, {17, 20, 24, -1}, {17, 20, 25, -1}, {17, 21, 22, -1}, {17, 21, 23, -1}, {17, 21, 24, -1}, {17, 21, 25, -1}, {17, 22, 23, -1}, {17, 22, 24, -1}, {17, 22, 25, -1}, {17, 23, 24, -1}, {17, 23, 25, -1}, {17, 24, 25, -1}, {18, 19, 20, -1}, {18, 19, 21, -1}, {18, 19, 22, -1}, {18, 19, 23, -1}, {18, 19, 24, -1}, {18, 19, 25, -1}, {18, 20, 21, -1}, {18, 20, 22, -1}, {18, 20, 23, -1}, {18, 20, 24, -1}, {18, 20, 25, -1}, {18, 21, 22, -1}, {18, 21, 23, -1}, {18, 21, 24, -1}, {18, 21, 25, -1}, {18, 22, 23, -1}, {18, 22, 24, -1}, {18, 22, 25, -1}, {18, 23, 24, -1}, {18, 23, 25, -1}, {18, 24, 25, -1}, {19, 20, 21, -1}, {19, 20, 22, -1}, {19, 20, 23, -1}, {19, 20, 24, -1}, {19, 20, 25, -1}, {19, 21, 22, -1}, {19, 21, 23, -1}, {19, 21, 24, -1}, {19, 21, 25, -1}, {19, 22, 23, -1}, {19, 22, 24, -1}, {19, 22, 25, -1}, {19, 23, 24, -1}, {19, 23, 25, -1}, {19, 24, 25, -1}, {20, 21, 22, -1}, {20, 21, 23, -1}, {20, 21, 24, -1}, {20, 21, 25, -1}, {20, 22, 23, -1}, {20, 22, 24, -1}, {20, 22, 25, -1}, {20, 23, 24, -1}, {20, 23, 25, -1}, {20, 24, 25, -1}, {21, 22, 23, -1}, {21, 22, 24, -1}, {21, 22, 25, -1}, {21, 23, 24, -1}, {21, 23, 25, -1}, {21, 24, 25, -1}, {22, 23, 24, -1}, {22, 23, 25, -1}, {22, 24, 25, -1}, {23, 24, 25, -1}} ; diff --git a/xor_codes/tools/gen_failure_combs.py b/xor_codes/tools/gen_failure_combs.py new file mode 100644 index 0000000..357d1d0 --- /dev/null +++ b/xor_codes/tools/gen_failure_combs.py @@ -0,0 +1,65 @@ +# Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. THIS SOFTWARE IS +# PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +# NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import optparse +import mpmath +import itertools +import sys +import random + + +def get_combinations(list, k): + return itertools.combinations(list, k) + +if len(sys.argv) != 3: + print("Usage: %s <num_fragments> <num_combs>") + sys.exit(1) + +n = int(sys.argv[1]) +k = int(sys.argv[2]) + +if n is None or k is None: + print("Usage: %s <num_fragments> <num_combs>") + sys.exit(1) + +fragments = [i for i in range(n)] +fragment_combinations = [] + +for i in range(1, k + 1): + fragment_combinations.extend( + [list(comb) for comb in get_combinations(fragments, i)]) + +for comb in fragment_combinations: + while len(comb) < 4: + comb.append(-1) + +failure_comb_format_str = \ + "int failure_combs_%d_%d[NUM_%d_%d_COMBS][%d] = %s ;" + +fragment_combination_str = ( + "%s" % fragment_combinations).replace("[", "{").replace("]", "}") + +print("#define NUM_%d_%d_COMBS %d" % + (n, k + 1, len(fragment_combinations))) +print(failure_comb_format_str % + (n, k + 1, n, k + 1, 4, fragment_combination_str)) diff --git a/xor_codes/tools/gen_goldilocks_codes.py b/xor_codes/tools/gen_goldilocks_codes.py new file mode 100644 index 0000000..2afe47e --- /dev/null +++ b/xor_codes/tools/gen_goldilocks_codes.py @@ -0,0 +1,230 @@ +# Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. THIS SOFTWARE IS +# PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +# NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import optparse +import mpmath +import itertools +import sys +import random + + +def get_combinations(list, k): + return itertools.combinations(list, k) + + +def list_to_bm(list): + bm = 0 + for elm in list: + bm = bm | (1 << elm) + return bm + + +def bm_to_list(bm): + list = [] + tmp_bm = bm + count = 0 + while tmp_bm != 0: + if tmp_bm & 1: + list.append(count) + count = count + 1 + tmp_bm = tmp_bm >> 1 + return list + + +def list_of_list_to_bm_list(list): + bm_list = [] + for elm in list: + bm_list.append(list_to_bm(elm)) + + return bm_list + + +def bm_list_to_list_of_list(bm_list): + list_of_list = [] + for bm in bm_list: + list_of_list.append(bm_to_list(bm)) + + return list_of_list + + +def bm_in(elm, bm): + if bm & (1 << elm): + return True + else: + return False + + +def bm(elm): + return (1 << elm) + + +def bm_insert(bm, elm): + bm = bm | (1 << elm) + return bm + + +def bm_rm(bm, elm): + if bm_in(elm, bm): + bm = bm ^ (1 << elm) + return bm + + +def bm_is_subset(bm1, bm2): + if (bm1 & bm2) ^ bm1 == 0: + return True + else: + return False + + +def bm_intersection(bm1, bm2): + return bm1 & bm2 + + +def bm_hw(bm): + hw = 0 + if bm == 0: + return hw + + while bm != 0: + if (bm & 1) == 1: + hw += 1 + bm = bm >> 1 + return hw + + +def create_full_bm(num_bits): + bm = (1 << num_bits) - 1 + return bm + + +def find_first(list, find_func): + for i in range(len(list)): + if find_func(list[i]): + elm = list.pop(i) + return elm + + return None + + +def get_num_data_in_parity(parity_bm_list): + num_data_in_parity = [0 for i in range(m)] + + for parity_bm in parity_bm_list: + for i in range(len(num_data_in_parity)): + if bm_in(i, parity_bm): + num_data_in_parity[i] += 1 + + return num_data_in_parity + + +def get_parity_eqns(bm_parity_combinations): + parity_bms = [0 for i in range(m)] + data_num = 0 + for parity_comb in bm_parity_combinations: + for i in range(m): + if bm_in(i, parity_comb): + parity_bms[i] = bm_insert(parity_bms[i], data_num) + data_num += 1 + + return parity_bms + +if len(sys.argv) != 3: + print("Usage: %s <num_parities> <num_bits = 2|3>") + sys.exit(1) + +m = int(sys.argv[1]) +num_bits = int(sys.argv[2]) + +if m is None or num_bits not in [2, 3]: + print("Usage: %s <num_parities> <num_bits = 2|3>") + sys.exit(1) + +parity_list = [i for i in range(m)] +parity_combinations = get_combinations(parity_list, num_bits) +bm_parity_combinations = list_of_list_to_bm_list(parity_combinations) + +needed_parity_bm = create_full_bm(m) + +parity_bms_template = "int g_%d_%d_%d_hd_code_parity_bms[] = { %s };" +data_bms_template = "int g_%d_%d_%d_hd_code_data_bms[] = { %s };" + +k = mpmath.binomial(m, num_bits) +used_parities = [] + +while k > m: + if bm_hw(needed_parity_bm) >= num_bits: + # If HW >= num_bits, find any such that (elm & needed_parity_bm) == elm + parity_bm = find_first( + bm_parity_combinations, + lambda elm: ( + elm & needed_parity_bm) == elm) + if parity_bm is not None: + needed_parity_bm ^= parity_bm + else: + # If HW < num_bits, find any such that (elm & needed_parity_bm) == + # needed_parity_bm + parity_bm = find_first( + bm_parity_combinations, + lambda elm: ( + elm & needed_parity_bm) == needed_parity_bm) + if parity_bm is not None: + needed_parity_bm = ( + needed_parity_bm ^ parity_bm) ^ create_full_bm(m) + + # If we cannot find one, pop the last chosen element and try another + full_bm = create_full_bm(m) + if parity_bm is None: + parity_to_re_add = used_parities.pop() + # Added at the end, so we are changing the order + bm_parity_combinations.append(parity_to_re_add) + needed_parity_bm |= parity_to_re_add + k += 1 + else: + used_parities.append(parity_bm) + k -= 1 + +for parity_bm in used_parities: + num_data_in_parity = get_num_data_in_parity(bm_parity_combinations) + parity_eqns = get_parity_eqns(bm_parity_combinations) + # print "(%d, %d) : %s : %s : %s" % (k, m, bm_parity_combinations, + # parity_eqns, num_data_in_parity) + print(parity_bms_template % + (k, m, num_bits + 1, + ("%s" % parity_eqns).replace("[", "").replace("]", ""))) + print(data_bms_template % + (k, m, num_bits + 1, + ("%s" % bm_parity_combinations).replace("[", "").replace("]", ""))) + + bm_parity_combinations.append(parity_bm) + k += 1 + +num_data_in_parity = get_num_data_in_parity(bm_parity_combinations) +parity_eqns = get_parity_eqns(bm_parity_combinations) +# print"(%d, %d) : %s : %s" % (k, m, bm_parity_combinations, +# num_data_in_parity) +print(parity_bms_template % + (k, m, num_bits + 1, + ("%s" % parity_eqns).replace("[", "").replace("]", ""))) +print(data_bms_template % + (k, m, num_bits + 1, + ("%s" % bm_parity_combinations).replace("[", "").replace("]", ""))) diff --git a/xor_codes/xor_code.c b/xor_codes/xor_code.c new file mode 100644 index 0000000..7996e01 --- /dev/null +++ b/xor_codes/xor_code.c @@ -0,0 +1,401 @@ +/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY + * THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <emmintrin.h> //SSE2 +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <time.h> +#include <xor_code.h> + +const int g_bit_lookup[] = {0x1, 0x2, 0x4, 0x8, + 0x10, 0x20, 0x40, 0x80, + 0x100, 0x200, 0x400, 0x800, + 0x1000, 0x2000, 0x4000, 0x8000, + 0x10000, 0x20000, 0x40000, 0x80000, + 0x100000, 0x200000, 0x400000, 0x800000, + 0x1000000, 0x2000000, 0x4000000, 0x8000000, + 0x10000000, 0x20000000, 0x40000000, 0x80000000}; + +int is_data_in_parity(int data_idx, int parity_bm) +{ + return ((g_bit_lookup[data_idx] & parity_bm) == g_bit_lookup[data_idx]); +} + +int does_parity_have_data(int parity_idx, int data_bm) +{ + return ((g_bit_lookup[parity_idx] & data_bm) == g_bit_lookup[parity_idx]); +} + +int parity_bit_lookup(xor_code_t *code_desc, int index) +{ + return g_bit_lookup[code_desc->k - index]; +} + +int data_bit_lookup(xor_code_t *code_desc, int index) +{ + return g_bit_lookup[index]; +} + +int missing_elements_bm(xor_code_t *code_desc, int *missing_elements, int (*bit_lookup_func)(xor_code_t *code_desc, int index)) +{ + int i = 0; + int bm = 0; + + while (missing_elements[i] > -1) { + bm |= bit_lookup_func(code_desc, missing_elements[i]); + i++; + } + + return bm; +} + +void *aligned_malloc( size_t size, int align ) +{ + void *mem = malloc( size + (align-1) + sizeof(void*) ); + char *amem; + if (!mem) { + return NULL; + } + + amem = ((char*)mem) + sizeof(void*); + amem += align - ((unsigned long)amem & (align - 1)); + + ((void**)amem)[-1] = mem; + return amem; +} + +void aligned_free( void *mem ) +{ + free( ((void**)mem)[-1] ); +} + +failure_pattern_t get_failure_pattern(xor_code_t *code_desc, int *missing_idxs) +{ + int i = 0; + int num_failures = 0; + failure_pattern_t pattern = FAIL_PATTERN_0D_0P; + + while (missing_idxs[i] > -1) { + if (num_failures >= code_desc->hd) { + pattern = FAIL_PATTERN_GE_HD; + } + switch(pattern) { + case FAIL_PATTERN_0D_0P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_0P : FAIL_PATTERN_0D_1P; + break; + case FAIL_PATTERN_1D_0P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_2D_0P : FAIL_PATTERN_1D_1P; + break; + case FAIL_PATTERN_2D_0P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_3D_0P : FAIL_PATTERN_2D_1P; + break; + case FAIL_PATTERN_3D_0P: + pattern = FAIL_PATTERN_GE_HD; + break; + case FAIL_PATTERN_1D_1P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_2D_1P : FAIL_PATTERN_1D_2P; + break; + case FAIL_PATTERN_1D_2P: + pattern = FAIL_PATTERN_GE_HD; + break; + case FAIL_PATTERN_2D_1P: + pattern = FAIL_PATTERN_GE_HD; + break; + case FAIL_PATTERN_0D_1P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_1P : FAIL_PATTERN_0D_2P; + break; + case FAIL_PATTERN_0D_2P: + pattern = (missing_idxs[i] < code_desc->k) ? FAIL_PATTERN_1D_2P : FAIL_PATTERN_0D_3P; + break; + case FAIL_PATTERN_0D_3P: + pattern = FAIL_PATTERN_GE_HD; + break; + case FAIL_PATTERN_GE_HD: + default: + break; + } + if (pattern == FAIL_PATTERN_GE_HD) { + break; + } + i++; + } + + return pattern; +} + +void fast_memcpy(char *dst, char *src, int size) +{ + // Use _mm_stream_si128((__m128i*) _buf2, sum); + memcpy(dst, src, size); +} + +/* + * Buffers must be aligned to 16-byte boundaries + * + * Store in buf2 (opposite of memcpy convention... Maybe change?) + */ +void xor_bufs_and_store(char *buf1, char *buf2, int blocksize) +{ +#ifdef INTEL_SSE2 + int residual_bytes = num_unaligned_end(blocksize); + int fast_blocksize = blocksize > residual_bytes ? (blocksize - residual_bytes) : 0; + int fast_int_blocksize = fast_blocksize / sizeof(__m128i); + int i; + __m128i *_buf1 = (__m128i*)buf1; + __m128i *_buf2 = (__m128i*)buf2; + + /* + * XOR aligned region using 128-bit XOR + */ + for (i=0; i < fast_int_blocksize; i++) { + _buf2[i] = _mm_xor_si128(_buf1[i], _buf2[i]); + } +#else + int residual_bytes = num_unaligned_end(blocksize); + int fast_blocksize = blocksize > residual_bytes ? (blocksize - residual_bytes) : 0; + int fast_int_blocksize = fast_blocksize / sizeof(unsigned long); + int i; + + unsigned long*_buf1 = (unsigned long*)buf1; + unsigned long*_buf2 = (unsigned long*)buf2; + + for (i=0; i < fast_int_blocksize; i++) { + _buf2[i] = _buf1[i] ^ _buf2[i]; + } +#endif + + /* + * XOR unaligned end of region + */ + for (i=fast_blocksize; i < blocksize; i++) + { + buf2[i] ^= buf1[i]; + } +} + +void xor_code_encode(xor_code_t *code_desc, char **data, char **parity, int blocksize) +{ + int i, j; + + for (i=0; i < code_desc->k; i++) { + for (j=0; j < code_desc->m; j++) { + if (is_data_in_parity(i, code_desc->parity_bms[j])) { + xor_bufs_and_store(data[i], parity[j], blocksize); + } + } + } +} + +void selective_encode(xor_code_t *code_desc, char **data, char **parity, int *missing_parity, int blocksize) +{ + int i; + for (i=0; i < code_desc->k; i++) { + int j=0; + while (missing_parity[j] > -1) { + int parity_index = missing_parity[j] - code_desc->k; + if (is_data_in_parity(i, code_desc->parity_bms[parity_index])) { + xor_bufs_and_store(data[i], parity[parity_index], blocksize); + } + j++; + } + } +} + +int * get_missing_parity(xor_code_t *code_desc, int *missing_idxs) +{ + int *missing_parity = (int*)malloc(sizeof(int)*MAX_PARITY); + int i = 0, j = 0; + + while (missing_idxs[i] > -1) { + if (missing_idxs[i] >= code_desc->k) { + missing_parity[j] = missing_idxs[i]; + j++; + } + i++; + } + + missing_parity[j] = -1; + return missing_parity; +} + +int * get_missing_data(xor_code_t *code_desc, int *missing_idxs) +{ + int *missing_data = (int*)malloc(sizeof(int)*MAX_DATA); + int i = 0, j = 0; + + while (missing_idxs[i] > -1) { + if (missing_idxs[i] < code_desc->k) { + missing_data[j] = missing_idxs[i]; + j++; + } + i++; + } + + missing_data[j] = -1; + return missing_data; +} + +/* + * Reconstruct a single missing symbol, given other symbols may be missing + */ +void xor_reconstruct_one(xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int index_to_reconstruct, int blocksize) +{ + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + int i; + + // If it is a data symbol, we need to figure out + // what data+parity symbols are needed to reconstruct + // If there is not at least one parity equation with + // one missing data element (the index to resonstruct), + // just call the underlying decode function + if (index_to_reconstruct < code_desc->k) { + int connected_parity_idx = index_of_connected_parity(code_desc, index_to_reconstruct, missing_parity, missing_data); + + if (connected_parity_idx >= 0) { + // Can do a cheap reoncstruction! + int relative_parity_idx = connected_parity_idx - code_desc->k; + int parity_bm = code_desc->parity_bms[relative_parity_idx]; + + fast_memcpy(data[index_to_reconstruct], parity[relative_parity_idx], blocksize); + + for (i=0; i < code_desc->k; i++) { + if (parity_bm & (1 << i)) { + if (i != index_to_reconstruct) { + xor_bufs_and_store(data[i], data[index_to_reconstruct], blocksize); + } + } + } + + } else { + // Just call decode + code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1); + } + + } else { + + // If it is a parity symbol, we need to figure out + // what data symbols are needed to reconstruct the + // parity. If *any* data symbols in the parity + // equation are missing, we are better off calling + // the underlying decode function. + int num_data_missing = num_missing_data_in_parity(code_desc, index_to_reconstruct, missing_data); + + if (num_data_missing == 0) { + int relative_parity_idx = index_to_reconstruct - code_desc->k; + int parity_bm = code_desc->parity_bms[relative_parity_idx]; + + memset(parity[relative_parity_idx], 0, blocksize); + + for (i=0; i < code_desc->k; i++) { + if (parity_bm & (1 << i)) { + xor_bufs_and_store(data[i], parity[relative_parity_idx], blocksize); + } + } + + } else { + // Just call decode + code_desc->decode(code_desc, data, parity, missing_idxs, blocksize, 1); + } + } +} + +int num_missing_data_in_parity(xor_code_t *code_desc, int parity_idx, int *missing_data) +{ + int i = 0; + int num_missing_data = 0; + int relative_parity_index = parity_idx - code_desc->k; + if (missing_data == NULL) { + return 0; + } + + while (missing_data[i] > -1) { + if (does_parity_have_data(relative_parity_index, code_desc->data_bms[missing_data[i]]) > 0) { + num_missing_data++; + } + i++; + } + + return num_missing_data; +} + +int index_of_connected_parity(xor_code_t *code_desc, int data_index, int *missing_parity, int *missing_data) +{ + int parity_index = -1; + int i; + + for (i=0; i < code_desc->m; i++) { + if (num_missing_data_in_parity(code_desc, i + code_desc->k, missing_data) > 1) { + continue; + } + if (is_data_in_parity(data_index, code_desc->parity_bms[i])) { + int j=0; + int is_missing = 0; + if (missing_parity == NULL) { + parity_index = i; + break; + } + while (missing_parity[j] > -1) { + if ((code_desc->k + i) == missing_parity[j]) { + is_missing = 1; + break; + } + j++; + } + if (!is_missing) { + parity_index = i; + break; + } + } + } + + // Must add k to get the absolute + // index of the parity in the stripe + return parity_index > -1 ? parity_index + code_desc->k : parity_index; +} + +void remove_from_missing_list(int element, int *missing_list) +{ + int i = 0; + int elem_idx = -1; + int num_elems = 0; + + while (missing_list[i] > -1) { + if (missing_list[i] == element) { + elem_idx = i; + missing_list[i] = -1; + } + i++; + } + + num_elems = i; + + for (i=elem_idx;i < num_elems-1;i++) { + int tmp = missing_list[i+1]; + missing_list[i+1] = missing_list[i]; + missing_list[i] = tmp; + } +} + diff --git a/xor_codes/xor_hd_code.c b/xor_codes/xor_hd_code.c new file mode 100644 index 0000000..3f9aaae --- /dev/null +++ b/xor_codes/xor_hd_code.c @@ -0,0 +1,610 @@ +/* * Copyright (c) 2013, Kevin Greenan (kmgreen2@gmail.com) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY + * THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <xor_code.h> +#include <xor_hd_code_defs.h> + +/* + * Returns -1 if not possible + */ +static int fragments_needed_one_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, int *data_bm, int *parity_bm) +{ + int data_index = missing_data[0]; + int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + + if (parity_index < 0) { + return -1; + } + + // Include all data elements except for this one + *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]); + + // Include this parity element + *parity_bm |= (1 << (parity_index-code_desc->k)); + *data_bm &= ~((unsigned int)1 << data_index); + + return 0; +} + +/* + * Returns -1 if not possible + */ +static int fragments_needed_two_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, int *data_bm, int *parity_bm) +{ + // Verify that missing_data[2] == -1? + int data_index = missing_data[0]; + int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + int i; + int ret; + + if (parity_index < 0) { + data_index = missing_data[1]; + parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + if (parity_index < 0) { + return -1; + } + missing_data[1] = -1; + } else { + missing_data[0] = missing_data[1]; + missing_data[1] = -1; + } + + // Include all data elements except for this one + *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]); + + // Include this parity element + *parity_bm |= (1 << (parity_index-code_desc->k)); + + ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, data_bm, parity_bm); + + *data_bm &= ~((unsigned int)1 << data_index); + + return ret; +} + +/* + * Returns -1 if not possible + */ +static int fragments_needed_three_data(xor_code_t *code_desc, int *missing_data, int *missing_parity, int *data_bm, int *parity_bm) +{ + int i = 0; + int parity_index = -1; + int data_index = -1; + int tmp_parity_bm = -1; + int contains_2d = -1; + int contains_3d = -1; + int ret = 0; + + /* + * Try to find a parity that only contains + * one of the missing data elements. + */ + while (missing_data[i] > -1) { + parity_index = index_of_connected_parity(code_desc, missing_data[i], missing_parity, missing_data); + if (parity_index > -1) { + data_index = missing_data[i]; + tmp_parity_bm = code_desc->parity_bms[parity_index-code_desc->k]; + break; + } + i++; + } + /* + * If we cannot find a parity that is connected to only + * one missing element, we must find a parity that is + * connected to exactly 2 (P) and another that is connected + * to exactly 3 (Q) (it should exist!!!). + * + * We XOR those parities together and use it to recover + * the element that is not connected to P. + */ + if (parity_index < 0) { + + for (i=0;i < code_desc->m;i++) { + int num_missing = num_missing_data_in_parity(code_desc, code_desc->k+i, missing_data); + if (num_missing == 2 && contains_2d < 0) { + contains_2d = i; + } else if (num_missing == 3 && contains_3d < 0) { + contains_3d = i; + } + } + + if (contains_2d < 0 || contains_3d < 0) { + return -1; + } + + // P XOR Q + tmp_parity_bm = code_desc->parity_bms[contains_2d] ^ code_desc->parity_bms[contains_3d]; + + i=0; + data_index = -1; + while (missing_data[i] > -1) { + if (is_data_in_parity(missing_data[i], tmp_parity_bm)) { + data_index = missing_data[i]; + break; + } + i++; + } + + if (data_index < 0) { + return -1; + } + } + + remove_from_missing_list(data_index, missing_data); + + // Include all data elements except for this one + *data_bm |= (code_desc->parity_bms[parity_index-code_desc->k]); + + // Include this parity element + if (parity_index > -1) { + *parity_bm |= (1 << (parity_index-code_desc->k)); + } else { + *parity_bm |= (1 << (contains_2d-code_desc->k)); + *parity_bm |= (1 << (contains_3d-code_desc->k)); + } + + ret = fragments_needed_two_data(code_desc, missing_data, missing_parity, data_bm, parity_bm); + + *data_bm &= ~((unsigned int)1 << data_index); + + return ret; +} + + + +int xor_hd_fragments_needed(xor_code_t *code_desc, int *missing_idxs, int *fragments_needed) +{ + failure_pattern_t pattern = get_failure_pattern(code_desc, missing_idxs); + int data_bm = 0, parity_bm = 0; + int ret = 0; + int i, j; + + switch(pattern) { + case FAIL_PATTERN_0D_0P: + break; + case FAIL_PATTERN_1D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + ret = fragments_needed_one_data(code_desc, missing_data, NULL, &data_bm, &parity_bm); + free(missing_data); + break; + } + case FAIL_PATTERN_2D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + ret = fragments_needed_two_data(code_desc, missing_data, NULL, &data_bm, &parity_bm); + free(missing_data); + break; + } + case FAIL_PATTERN_3D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + ret = fragments_needed_three_data(code_desc, missing_data, NULL, &data_bm, &parity_bm); + free(missing_data); + break; + } + case FAIL_PATTERN_1D_1P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup); + ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm); + // OR all parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + data_bm &= ~(missing_data_bm); + i++; + } + free(missing_parity); + free(missing_data); + break; + } + case FAIL_PATTERN_1D_2P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup); + ret = fragments_needed_one_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm); + // OR all parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + data_bm &= ~(missing_data_bm); + i++; + } + free(missing_parity); + free(missing_data); + break; + } + case FAIL_PATTERN_2D_1P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + int missing_data_bm = missing_elements_bm(code_desc, missing_data, data_bit_lookup); + ret = fragments_needed_two_data(code_desc, missing_data, missing_parity, &data_bm, &parity_bm); + // OR all parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + data_bm &= ~(missing_data_bm); + i++; + } + free(missing_parity); + free(missing_data); + break; + } + case FAIL_PATTERN_0D_1P: + { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + // OR all of the parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + i++; + } + free(missing_parity); + break; + } + case FAIL_PATTERN_0D_2P: + { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + // OR all of the parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + i++; + } + free(missing_parity); + break; + } + case FAIL_PATTERN_0D_3P: + { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + // OR all of the parities + i=0; + while (missing_parity[i] > -1) { + data_bm |= code_desc->parity_bms[missing_parity[i]-code_desc->k]; + i++; + } + free(missing_parity); + break; + } + case FAIL_PATTERN_GE_HD: + default: + break; + } + + if (ret >= 0) { + i=0; + j=0; + while (data_bm) { + if (data_bm & 1) { + fragments_needed[j] = i; + j++; + } + i++; + data_bm >>= 1; + } + + i=0; + while (parity_bm) { + if (parity_bm & 1) { + fragments_needed[j] = i + code_desc->k; + j++; + } + i++; + parity_bm >>= 1; + } + + fragments_needed[j] = -1; + } + + return ret; +} + +/* + * There is one unavailable data element, so any available parity connected to + * the data element is sufficient to decode. + */ +static void decode_one_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize) +{ + // Verify that missing_data[1] == -1? + int data_index = missing_data[0]; + int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + int i; + + // Copy the appropriate parity into the data buffer + fast_memcpy(data[data_index], parity[parity_index-code_desc->k], blocksize); + + for (i=0; i < code_desc->k; i++) { + if (i != data_index && is_data_in_parity(i, code_desc->parity_bms[parity_index-code_desc->k])) { + xor_bufs_and_store(data[i], data[data_index], blocksize); + } + } +} + +static void decode_two_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize) +{ + // Verify that missing_data[2] == -1? + int data_index = missing_data[0]; + int parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + int i; + + if (parity_index < 0) { + data_index = missing_data[1]; + parity_index = index_of_connected_parity(code_desc, data_index, missing_parity, missing_data); + if (parity_index < 0) { + fprintf(stderr, "Shit is broken, cannot find a proper parity!!!\n"); + exit(2); + } + missing_data[1] = -1; + } else { + missing_data[0] = missing_data[1]; + missing_data[1] = -1; + } + + // Copy the appropriate parity into the data buffer + fast_memcpy(data[data_index], parity[parity_index-code_desc->k], blocksize); + + for (i=0; i < code_desc->k; i++) { + if (i != data_index && is_data_in_parity(i, code_desc->parity_bms[parity_index-code_desc->k])) { + xor_bufs_and_store(data[i], data[data_index], blocksize); + } + } + decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize); +} + +static void decode_three_data(xor_code_t *code_desc, char **data, char **parity, int *missing_data, int *missing_parity, int blocksize) +{ + int i = 0; + int parity_index = -1; + int data_index = -1; + int parity_bm = -1; + char *parity_buffer; + + /* + * Try to find a parity that only contains + * one of the missing data elements. + */ + while (missing_data[i] > -1) { + parity_index = index_of_connected_parity(code_desc, missing_data[i], missing_parity, missing_data); + if (parity_index > -1) { + data_index = missing_data[i]; + parity_buffer = parity[parity_index-code_desc->k]; + parity_bm = code_desc->parity_bms[parity_index-code_desc->k]; + break; + } + i++; + } + + /* + * If we cannot find a parity that is connected to only + * one missing element, we must find a parity that is + * connected to exactly 2 (P) and another that is connected + * to exactly 3 (Q) (it should exist!!!). + * + * We XOR those parities together and use it to recover + * the element that is not connected to P. + */ + if (parity_index < 0) { + int contains_2d = -1; + int contains_3d = -1; + + for (i=0;i < code_desc->m;i++) { + int num_missing = num_missing_data_in_parity(code_desc, code_desc->k+i, missing_data); + if (num_missing == 2 && contains_2d < 0) { + contains_2d = i; + } else if (num_missing == 3 && contains_3d < 0) { + contains_3d = i; + } + } + + if (contains_2d < 0 || contains_3d < 0) { + fprintf(stderr, "Shit is broken, cannot find a proper parity (2 and 3-connected parities)!!!\n"); + exit(2); + } + + parity_buffer = aligned_malloc(blocksize, 16); + + // P XOR Q + parity_bm = code_desc->parity_bms[contains_2d] ^ code_desc->parity_bms[contains_3d]; + + // Create buffer with P XOR Q -> parity_buffer + fast_memcpy(parity_buffer, parity[contains_2d], blocksize); + xor_bufs_and_store(parity[contains_3d], parity_buffer, blocksize); + + i=0; + data_index = -1; + while (missing_data[i] > -1) { + if (is_data_in_parity(missing_data[i], parity_bm)) { + data_index = missing_data[i]; + break; + } + i++; + } + + if (data_index < 0) { + fprintf(stderr, "Shit is broken, cannot construct equations to repair 3 failures!!!\n"); + exit(2); + } + } + + // Copy the appropriate parity into the data buffer + fast_memcpy(data[data_index], parity_buffer, blocksize); + + for (i=0; i < code_desc->k; i++) { + if (i != data_index && is_data_in_parity(i, parity_bm)) { + xor_bufs_and_store(data[i], data[data_index], blocksize); + } + } + + remove_from_missing_list(data_index, missing_data); + + decode_two_data(code_desc, data, parity, missing_data, missing_parity, blocksize); +} + +void xor_hd_decode(xor_code_t *code_desc, char **data, char **parity, int *missing_idxs, int blocksize, int decode_parity) +{ + failure_pattern_t pattern = get_failure_pattern(code_desc, missing_idxs); + + switch(pattern) { + case FAIL_PATTERN_0D_0P: + break; + case FAIL_PATTERN_1D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + decode_one_data(code_desc, data, parity, missing_data, NULL, blocksize); + free(missing_data); + break; + } + case FAIL_PATTERN_2D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + decode_two_data(code_desc, data, parity, missing_data, NULL, blocksize); + free(missing_data); + break; + } + case FAIL_PATTERN_3D_0P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + decode_three_data(code_desc, data, parity, missing_data, NULL, blocksize); + free(missing_data); + break; + } + case FAIL_PATTERN_1D_1P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize); + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + free(missing_data); + break; + } + case FAIL_PATTERN_1D_2P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + decode_one_data(code_desc, data, parity, missing_data, missing_parity, blocksize); + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + free(missing_data); + break; + } + case FAIL_PATTERN_2D_1P: + { + int *missing_data = get_missing_data(code_desc, missing_idxs); + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + decode_two_data(code_desc, data, parity, missing_data, missing_parity, blocksize); + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + free(missing_data); + break; + } + case FAIL_PATTERN_0D_1P: + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + break; + case FAIL_PATTERN_0D_2P: + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + break; + case FAIL_PATTERN_0D_3P: + if (decode_parity) { + int *missing_parity = get_missing_parity(code_desc, missing_idxs); + selective_encode(code_desc, data, parity, missing_parity, blocksize); + free(missing_parity); + } + break; + case FAIL_PATTERN_GE_HD: + default: + break; + } + + return; +} + +xor_code_t* init_xor_hd_code(int k, int m, int hd) +{ + xor_code_t *code_desc = NULL; + int is_valid = 0; + + if (hd == 3) { + if (m == 6) { + if (k <= 15 && k >= 6) { + is_valid = 1; + } + } else if (m == 5) { + if (k <= 10 && k >= 5) { + is_valid = 1; + } + } + } + + if (hd == 4) { + if (m == 6) { + if (k <= 20 && k >= 6) { + is_valid = 1; + } + } else if (m == 5) { + if (k <= 10 && k >= 5) { + is_valid = 1; + } + } + } + + if (is_valid) { + code_desc = (xor_code_t*)malloc(sizeof(xor_code_t)); + code_desc->parity_bms = PARITY_BM_ARY(k, m, hd); + code_desc->data_bms = DATA_BM_ARY(k, m, hd); + code_desc->k = k; + code_desc->m = m; + code_desc->hd = hd; + code_desc->decode = xor_hd_decode; + code_desc->encode = xor_code_encode; + code_desc->fragments_needed = xor_hd_fragments_needed; + } + + return code_desc; +} + |