        #include <bits/stdc++.h>

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
         /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        using namespace std;

        /* ---*-----*-----
        ---------o--------
        -----------------*/

        typedef long long ll;
        typedef long double ld;

        typedef pair<int, int> pi;
        typedef pair<ll,ll> pl;
        typedef pair<ld,ld> pd;

        typedef vector<int> vi;
        typedef vector<ld> vd;
        typedef vector<ll> vl;
        typedef vector<pi> vpi;
        typedef vector<pl> vpl;
        typedef vector<char> vc;

        typedef unordered_map<int,int> mii;
        typedef map<ll,ll> mll;
        typedef map<char,int> mci;
        typedef map<string,int> msi;

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        #define mp make_pair
        #define pb push_back
        #define f first
        #define s second
        #define lb lower_bound
        #define ub upper_bound

        const int MOD = 1000000007;
        const int N = 200001;
        set<char> vowel={'A', 'O', 'Y', 'E', 'U', 'I','a','o','y','e','u','i'};
        ll gcd(ll a, ll b) { return (b == 0 ? a : gcd(b, a % b)); }
        bool issquare(ll w ){
            return trunc(sqrt(w))*trunc(sqrt(w))==w;
        }

        int dx[]={1,-1,0,0,1,-1,1,-1};
        int dy[]={0,0,1,-1,1,1,-1,-1};

        bool vis[N],check=true;

        char c,c1;

        string ch,ch1,ch2;
        queue<int> q;
        priority_queue<int> pq;

        map<int,set<int> > adj;
        map<ll,pl> mm;
        map<int,set<int> > edje;
        msi mastring;
        mci machar;
        mii mai;
        set<char> setchar;

        set<int> sx,sy,si;

        vl v,vv,tab[N];
        vpi vvv;
        vector <string> vs;

        int main(){
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/    ll n,m,k,a,l,ans=0,res=0,posmin,posmax,x,y=0,z=0,xmax=0,ymax=0,som[N];
            cin >> k ;
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
            for(int i=0;i<k;i++){
                cin >> x;

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
                tab[i].pb(x);
                ans=0;

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
                for(int j=0;j<x;j++){
                    cin >> y;
                    ans+=y;
                    tab[i].pb(y);
                }
                som[i]=ans;
            }

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
            for(int i=0;i<k;i++){
                for(int j=0;j<tab[i][0];j++){
                    x=som[i]-tab[i][j+1];
                    //cout << x << endl;
                    if(mm.count(x) && i !=mm[x].f){
                        cout << "YES" << endl;
                        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
                        cout << i+1 << " " << j+1<< endl;
                        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*//*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*//*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*//*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
                        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/ /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
                        cout << mm[x].f+1 << " " << mm[x].s+1;
                        return 0;
                    }else if(mm.count(x)==0){
                        mm[x]={i,j};
                    }
                }
            }

        /*12312321312391h29hdsj9sjc9sdjc90sd0jcsd0cjsd0ck0sdcksd0ck0sdck90dskc0sdkc9sdkc0sdk9cs*/
            cout << "NO" << endl;
          return 0;
        }


#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
vector<pair<ll,pair<int,int>>> a;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++){
		cin>>m;
		vector<int> x(m);
		for (int j=0;j<m;j++) cin>>x[j];
		ll  s = accumulate(x.begin(),x.end(), 0);
        for (int j=0;j<m;j++){
			a.push_back(make_pair(s-x[j],make_pair(i,j)));
        }
    }
    //for (int i=0;i<a.size();i++) cout<<a[i].fi<<" "<<a[i].se.fi<<" "<<a[i].se.se<<"\n";
    sort(a.begin(),a.end());
	for (int i=0;i<a.size()-1;i++){
		for (int j=i+1;j<a.size();j++){
			if (a[i].fi==a[j].fi){
				if (a[i].se.fi!=a[j].se.fi){
					cout<<"YES\n";
					cout<<a[i].se.fi+1<<" ";
					cout<<a[i].se.se+1<<" "<<endl;
					cout<<a[j].se.fi+1<<" ";
					cout<<a[j].se.se+1;
					return 0;
				}
			} else {
				i=j-1;
				break;
			}
		}
	}
	cout<<"NO";
    return 0;
}


#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
vector<pair<int,pair<int,int>>> a;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++){
		cin>>m;
		vector<int> x(m);
		for (int j=0;j<m;j++) cin>>x[j];
		ll  s = accumulate(x.begin(),x.end(), 0);
        for (int j=0;j<m;j++){
			a.push_back(make_pair(s-x[j],make_pair(i,j)));
        }
    }
    //for (int i=0;i<a.size();i++) cout<<a[i].fi<<" "<<a[i].se.fi<<" "<<a[i].se.se<<"\n";
    sort(a.begin(),a.end());
	for (int i=0;i<a.size()-1;i++){
		for (int j=i+1;j<a.size();j++){
			if (a[i].fi==a[j].fi){
				if (a[i].se.fi!=a[j].se.fi){
					cout<<"YES\n";
					cout<<a[i].se.fi+1<<" ";
					cout<<a[i].se.se+1<<" "<<endl;
					cout<<a[j].se.fi+1<<" ";
					cout<<a[j].se.se+1;
					return 0;
				}
			} else i=j;
		}
	}
	cout<<"NO";
    return 0;
}


#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
vector<pair<int,pair<int,int>>> a;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++){
		cin>>m;
		vector<int> x(m);
		for (int j=0;j<m;j++) cin>>x[j];
		ll  s = accumulate(x.begin(),x.end(), 0);
        for (int j=0;j<m;j++){
			a.push_back(make_pair(s-x[j],make_pair(i,j)));
        }
    }
    //for (int i=0;i<a.size();i++) cout<<a[i].fi<<" "<<a[i].se.fi<<" "<<a[i].se.se<<"\n";
    sort(a.begin(),a.end());
	for (int i=0;i<a.size()-1;i++){
		for (int j=i+1;j<a.size();j++){
			if (a[i].fi==a[j].fi){
				if (a[i].se.fi!=a[j].se.fi){
					cout<<"YES\n";
					cout<<a[i].se.fi+1<<" ";
					cout<<a[i].se.se+1<<" "<<endl;
					cout<<a[j].se.fi+1<<" ";
					cout<<a[j].se.se+1;
					return 0;
				}
			} else {
				i=j-1;
				break;
			}
		}
	}
	cout<<"NO";
    return 0;
}


#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
vector<pair<int,pair<int,int>>> a;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++){
		cin>>m;
		vector<int> x(m);
		for (int j=0;j<m;j++) cin>>x[j];
		ll  s = accumulate(x.begin(),x.end(), 0);
        for (int j=0;j<m;j++){
			a.push_back(make_pair(s-x[j],make_pair(i,j)));
        }
    }
    //for (int i=0;i<a.size();i++) cout<<a[i].fi<<" "<<a[i].se.fi<<" "<<a[i].se.se<<"\n";
    sort(a.begin(),a.end());
	for (int i=0;i<a.size()-1;i++){
		for (int j=i+1;j<a.size();j++){
			if (a[i].fi==a[j].fi){
				if (a[i].se.fi!=a[j].se.fi){
					cout<<"YES\n";
					cout<<a[i].se.fi+1<<" ";
					cout<<a[i].se.se+1<<" "<<endl;
					cout<<a[j].se.fi+1<<" ";
					cout<<a[j].se.se+1;
					return 0;
				}
			} else {
				i=j;
				break;
			}
		}
	}
	cout<<"NO";
    return 0;
}


#include <bits/stdc++.h>
#define ll long long
#define fi first
#define se second
using namespace std;
int n,m;
vector<pair<int,pair<int,int>>> a;
int main()
{
    cin>>n;
    for (int i=0;i<n;i++){
		cin>>m;
		vector<int> x(m);
		for (int j=0;j<m;j++) cin>>x[j];
		ll  s = accumulate(x.begin(),x.end(), 0);
        for (int j=0;j<m;j++){
			a.push_back(make_pair(s-x[j],make_pair(i,j)));
        }
    }
    for (int i=0;i<a.size();i++) cout<<a[i].fi<<" "<<a[i].se.fi<<" "<<a[i].se.se<<"\n";
    sort(a.begin(),a.end());
	for (int i=0;i<a.size()-1;i++){
		for (int j=i+1;j<a.size();j++){
			if (a[i].fi==a[j].fi){
				if (a[i].se.fi!=a[j].se.fi){
					cout<<"YES\n";
					cout<<a[i].se.fi+1<<" ";
					cout<<a[i].se.se+1<<" "<<endl;
					cout<<a[j].se.fi+1<<" ";
					cout<<a[j].se.se+1;
					return 0;
				}
			}
		}
	}
	cout<<"NO";
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];

                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    while(k--) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = i + 1; j < seq.size(); j++) {
                int diff = sums[i] - sums[j];
                auto start = seq[i].lower_bound(diff);
                for(auto it = start; it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;
set<int> temp;
map<int, int> temp2;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    while(k--) {
        int n, sum = 0;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        temp.clear();
        temp2.clear();
    }

    for(int i = 0; i < seq.size(); i++) {
        for(int j = i + 1; j < seq.size(); j++) {
            int diff = sums[i] - sums[j];

            for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                if(seq[j].find(*it - diff) != seq[j].end()) {
                    found = true;

                    puts("YES");
                    printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                    printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                    return 0;
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;
pair<int, int> a, b;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    while(k--) {
        int n, sum = 0;
        scanf("%i", &n);
        set<int> temp;
        map<int, int> temp2;
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);
    }

    for(int i = 0; i < seq.size(); i++) {
        for(int j = i + 1; j < seq.size(); j++) {
            int diff = sums[i] - sums[j];
            auto start = seq[i].lower_bound(diff);
            for(auto it = start; it != seq[i].end(); it++) {
                if(seq[j].find(*it - diff) != seq[j].end()) {
                    found = true;

                    puts("YES");
                    printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                    printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                    return 0;
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;
pair<int, int> a, b;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    while(k--) {
        int n, sum = 0;
        scanf("%i", &n);
        set<int> temp;
        map<int, int> temp2;
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);
    }

    for(int i = 0; i < seq.size(); i++) {
        for(int j = i + 1; j < seq.size(); j++) {
            int diff = sums[i] - sums[j];
            auto start = seq[i].upper_bound(diff);
            for(auto it = start; it != seq[i].end(); it++) {
                if(seq[j].find(*it - diff) != seq[j].end()) {
                    found = true;

                    puts("YES");
                    printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                    printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                    return 0;
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];
                cout << *--seq[i].end() << endl;
                if(abs(*--seq[i].end() - *seq[j].begin()) > abs(diff)) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];
                if(abs(*seq[i].begin() - *--seq[j].end()) > abs(diff)) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];
                if(abs(*seq[i].begin() - *(--seq[j].end())) < abs(diff)) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];
                if(abs(*--seq[i].end() - *seq[j].begin()) > abs(diff)) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

map<int, vector<pair<int, int>>> in;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        vector<int> ele;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            ele.push_back(a);
        }
        for(int i = 0; i < n; i++) in[sum - ele[i]].push_back(make_pair(l, i));
    }

    for(auto it = in.begin(); it != in.end(); it++) {
        if((it -> second).size() >= 2) {
            for(int i = 1; i < (it -> second).size(); i++) {
                if(((it -> second)[0].first != (it -> second)[i].first)) {
                    puts("YES");
                    printf("%i %i\n%i %i",
                    (it -> second)[0].first + 1, (it -> second)[0].second + 1, (it -> second)[i].first + 1, (it -> second)[i].second + 1);
                    return 0;
                }
            }
        }
    }

    puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];

                if(*seq[i].begin() - *--seq[j].end() > diff) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

vector<set<int>> seq;
vector<int> sums;
vector<map<int, int>> indexes;

int main() {
    int k; bool found = false;
    scanf("%i", &k);

    for(int l = 0; l < k; l++) {
        int n, sum = 0;
        set<int> temp;
        map<int, int> temp2;
        scanf("%i", &n);
        for(int i = 0; i < n; i++) {
            int a;
            scanf("%i", &a);
            sum += a;
            temp.insert(a);
            temp2[a] = i;
        }
        sums.push_back(sum);
        seq.push_back(temp);
        indexes.push_back(temp2);

        for(int i = 0; i < seq.size(); i++) {
            for(int j = l; j < seq.size(); j++) {
                if(i == j) continue;
                int diff = sums[i] - sums[j];
                if(abs(*--seq[i].end() - *seq[j].begin()) < abs(diff)) continue;
                for(auto it = seq[i].begin(); it != seq[i].end(); it++) {
                    if(seq[j].find(*it - diff) != seq[j].end()) {
                        found = true;

                        puts("YES");
                        printf("%i %i\n", i + 1, indexes[i][*it] + 1);
                        printf("%i %i\n", j + 1, indexes[j][*it - diff] + 1);
                        return 0;
                    }
                }
            }
        }
    }

    if(!found) puts("NO");

    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  unordered_map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j + 1;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions[sum - j - 10000].first)
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j]);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j]};
      }
  }

  printf("NO\n");

  return 0;
}


#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  unordered_map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions[sum - j - 10000].first)
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j] + 1);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  printf("NO\n");

  return 0;
}


#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  unordered_map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions.find(sum - j - 10000) != conditions.end())
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j] + 1);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  printf("NO\n");

  return 0;
}


#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions.find(sum - j - 10000) != conditions.end())
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j] + 1);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  printf("NO\n");

  return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  unordered_map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {-1};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j] != -1)
      {
        if (conditions[sum - j - 10000].first)
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j] + 1);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  printf("NO\n");

  return 0;
}


#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

int main() {
  int n;
  scanf("%d", &n);

  map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    scanf("%d", &len);

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      scanf("%d", &temp);

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions[sum - j - 10000].first)
        {
          printf("YES\n");
          printf("%d %d\n", conditions[sum - j - 10000].first, conditions[sum - j - 10000].second);
          printf("%d %d\n", i + 1, used[j] + 1);

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  printf("NO\n");

  return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main(){
  ios::sync_with_stdio();
  cin.tie();
  cout.tie();

  int n;
  cin >> n;

  unordered_map <int, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    cin >> len;

    int used[20001] = {-1};
    int sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      cin >> temp;

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20001; ++j)
      if (used[j] != -1)
      {
        if (conditions[sum - j - 10000].first)
        {
          pair <int, int> temp = conditions[sum - j - 10000];
          cout << "YES\n";
          cout << temp.first << " " << temp.second << "\n";
          cout << i + 1 << " " << used[j] + 1 << "\n";

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  cout << "NO\n";

  return 0;
}


#include <iostream>
#include <algorithm>
#include <map>

using namespace std;

int main() {
  ios::sync_with_stdio();
  cin.tie();
  cout.tie();

  int n;
  cin >> n;

  map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    cin >> len;

    int used[20001] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      cin >> temp;

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20001; ++j)
      if (used[j])
      {
        if (conditions[sum - j - 10000].first)
        {
          pair <int, int> temp = conditions[sum - j - 10000];
          cout << "YES\n";
          cout << temp.first << " " << temp.second << "\n";
          cout << i + 1 << " " << used[j] + 1 << "\n";

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  cout << "NO\n";

  return 0;
}


#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <unordered_map>

using namespace std;

int main() {
  int n;
  cin >> n;

  unordered_map <long long, pair <int, int>> conditions;

  for (int i = 0; i < n; ++i)
  {
    int len;
    cin >> len;

    int used[20010] = {0};
    long long sum = 0;

    for (int j = 0; j < len; ++j)
    {
      int temp;
      cin >> temp;

      used[temp + 10000] = j;

      sum += temp;
    }

    for (int j = 0; j < 20010; ++j)
      if (used[j])
      {
        if (conditions.find(sum - j - 10000) != conditions.end())
        {
          cout << "YES\n";
          cout << conditions[sum - j - 10000].first << " " << conditions[sum - j - 10000].second << "\n";
          cout << i + 1 << " " << used[j] + 1 << "\n";

          return 0;
        }

        conditions[sum - j - 10000] = {i + 1, used[j] + 1};
      }
  }

  cout << "NO\n";

  return 0;
}


#include<bits/stdc++.h>
#define lint long long int

using namespace std;

int main()
{
      lint k;
      cin>>k;

      lint i,j;
      unordered_map<lint,lint >hashe;

      vector<lint >len(k);
      vector<lint >arr[k];

      vector<lint>sum(k,0);
      lint p;
      for(i=0;i<k;i++)
      {
            cin>>len[i];

            for(j=0;j<len[i];j++)
            {
                cin>>p;
                arr[i].push_back(p);
            }
           // cin>>arr[i][j];

            for(j=0;j<len[i];j++)
            {
                  sum[i]+=arr[i][j];
            }
            for(j=0;j<len[i];j++)
            {
                  arr[i][j]=sum[i]-arr[i][j];
            }
      }

      for(i=0;i<k;i++)
      {
             unordered_map<lint,lint >localHash;
            for(j=0;j<len[i];j++)
            localHash[arr[i][j]]++;

            for(auto & x: localHash)
            {
                  hashe[x.first]++;
                  //cout<<x.first<<" "<<x.second<<endl;
            }

           // cout<<endl;
      }

     /* for(auto & x: hashe)
            {
       //           hashe[x.first]++;
                  cout<<x.first<<" "<<x.second<<endl;
            }*/

      int flag=0;
      lint val;

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
           {
                 if(hashe[arr[i][j]]>1)
                 {
                     val=hashe[arr[i][j]];
                     flag=1;
                 }
           }
      }

      if(flag==0)
      cout<<"NO"<<endl;
      else
      {
            cout<<"YES"<<endl;
            int c=0;
            for(i=0;i<k;i++)
            {
                  for(j=0;j<len[i];j++)
                  {
                        if(c==2)
                        return 0;
                     if(hashe[arr[i][j]]==val)
                     {
                           c++;
                        cout<<i+1<<" "<<j+1<<endl;
                        break;
                     }
                  }
            }
      }

	return 0;
}


#include<bits/stdc++.h>
#define lint long long int

using namespace std;

int main()
{
      lint k;
      cin>>k;

      lint i,j;
      unordered_map<lint,lint >hashe;

      vector<lint >len(k);
      vector<lint >arr[k];

      vector<lint>sum(k,0);
      lint p;
      for(i=0;i<k;i++)
      {
            cin>>len[i];

            for(j=0;j<len[i];j++)
            {
                cin>>p;
                arr[i].push_back(p);
            }
           // cin>>arr[i][j];

            for(j=0;j<len[i];j++)
            {
                  sum[i]+=arr[i][j];
            }
            for(j=0;j<len[i];j++)
            {
                  arr[i][j]=sum[i]-arr[i][j];
            }
      }

      for(i=0;i<k;i++)
      {
             unordered_map<lint,lint >localHash;
            for(j=0;j<len[i];j++)
            localHash[arr[i][j]]++;

            for(auto & x: localHash)
            {
                  hashe[x.first]++;
                  //cout<<x.first<<" "<<x.second<<endl;
            }
            localHash.clear();

           // cout<<endl;
      }

     /* for(auto & x: hashe)
            {
       //           hashe[x.first]++;
                  cout<<x.first<<" "<<x.second<<endl;
            }*/

      int flag=0;
      lint val;

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
           {
                 if(hashe[arr[i][j]]>1)
                 {
                     val=hashe[arr[i][j]];
                     flag=1;
                 }
           }
      }

      if(flag==0)
      cout<<"NO"<<endl;
      else
      {
            cout<<"YES"<<endl;
            int c=0;
            for(i=0;i<k;i++)
            {
                  for(j=0;j<len[i];j++)
                  {

                     if(hashe[arr[i][j]]==val && c!=2)
                     {
                           c++;
                        cout<<i+1<<" "<<j+1<<endl;
                        break;
                     }
                  }
            }
      }

	return 0;
}


#include<bits/stdc++.h>
#define lint long long int

using namespace std;

int main()
{
      int k;
      cin>>k;

      int i,j;
      unordered_map<lint,lint >hashe;

      vector<lint >len(k);
      vector<lint >arr[k];

      vector<lint>sum(k,0);
      lint p;
      for(i=0;i<k;i++)
      {
            cin>>len[i];

            for(j=0;j<len[i];j++)
            {
                cin>>p;
                arr[i].push_back(p);
            }
           // cin>>arr[i][j];

            for(j=0;j<len[i];j++)
            {
                  sum[i]+=arr[i][j];
            }
            for(j=0;j<len[i];j++)
            {
                  arr[i][j]=sum[i]-arr[i][j];
            }
      }

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
            hashe[arr[i][j]]++;
      }

      int flag=0;
      lint val;

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
           {
                 if(hashe[arr[i][j]]>1)
                 {
                     val=hashe[arr[i][j]];
                     flag=1;
                 }
           }
      }

      if(flag==0)
      cout<<"NO"<<endl;
      else
      {
            cout<<"YES"<<endl;
            int c=0;
            for(i=0;i<k;i++)
            {
                  for(j=0;j<len[i];j++)
                  {
                        if(c==2)
                        return 0;
                     if(hashe[arr[i][j]]==val)
                     {
                           c++;
                        cout<<i+1<<" "<<j+1<<endl;
                        break;
                     }
                  }
            }
      }

	return 0;
}


#include<bits/stdc++.h>
#define lint long long int

using namespace std;

int main()
{
      lint k;
      cin>>k;

      lint i,j;
      unordered_map<lint,lint >hashe;

      vector<lint >len(k);
      vector<lint >arr[k];

      vector<lint>sum(k,0);
      lint p;
      for(i=0;i<k;i++)
      {
            cin>>len[i];

            for(j=0;j<len[i];j++)
            {
                cin>>p;
                arr[i].push_back(p);
            }
           // cin>>arr[i][j];

            for(j=0;j<len[i];j++)
            {
                  sum[i]+=arr[i][j];
            }
            for(j=0;j<len[i];j++)
            {
                  arr[i][j]=sum[i]-arr[i][j];
            }
      }

      for(i=0;i<k;i++)
      {
             unordered_map<lint,lint >localHash;
            for(j=0;j<len[i];j++)
            localHash[arr[i][j]]++;

            for(auto & x: localHash)
            {
                  hashe[x.first]++;
                  //cout<<x.first<<" "<<x.second<<endl;
            }
            localHash.clear();

           // cout<<endl;
      }

     /* for(auto & x: hashe)
            {
       //           hashe[x.first]++;
                  cout<<x.first<<" "<<x.second<<endl;
            }*/

      int flag=0;
      lint val;

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
           {
                 if(hashe[arr[i][j]]>1)
                 {
                     val=hashe[arr[i][j]];
                     flag=1;
                 }
           }
      }

      if(flag==0)
      cout<<"NO"<<endl;
      else
      {
            cout<<"YES"<<endl;
            int c=0;
            for(i=0;i<k;i++)
            {
                  for(j=0;j<len[i];j++)
                  {
                        if(c==2)
                        return 0;
                     if(hashe[arr[i][j]]==val)
                     {
                           c++;
                        cout<<i+1<<" "<<j+1<<endl;
                        break;
                     }
                  }
            }
      }

	return 0;
}


#include<bits/stdc++.h>
#define lint long long int

using namespace std;

int main()
{
      int k;
      cin>>k;

      int i,j;
      unordered_map<lint,lint >hashe;

      vector<lint >len(k);
      vector<lint >arr[k];

      vector<lint>sum(k,0);
      lint p;
      for(i=0;i<k;i++)
      {
            cin>>len[i];

            for(j=0;j<len[i];j++)
            {
                cin>>p;
                arr[i].push_back(p);
            }
           // cin>>arr[i][j];

            for(j=0;j<len[i];j++)
            {
                  sum[i]+=arr[i][j];
            }
            for(j=0;j<len[i];j++)
            {
                  arr[i][j]=sum[i]-arr[i][j];
            }
      }

      for(i=0;i<k;i++)
      {
             unordered_map<lint,lint >localHash;
            for(j=0;j<len[i];j++)
            localHash[arr[i][j]]++;

            for(auto & x: localHash)
            {
                  hashe[x.first]++;
            }

      }

      int flag=0;
      lint val;

      for(i=0;i<k;i++)
      {
            for(j=0;j<len[i];j++)
           {
                 if(hashe[arr[i][j]]>1)
                 {
                     val=hashe[arr[i][j]];
                     flag=1;
                 }
           }
      }

      if(flag==0)
      cout<<"NO"<<endl;
      else
      {
            cout<<"YES"<<endl;
            int c=0;
            for(i=0;i<k;i++)
            {
                  for(j=0;j<len[i];j++)
                  {
                        if(c==2)
                        return 0;
                     if(hashe[arr[i][j]]==val)
                     {
                           c++;
                        cout<<i+1<<" "<<j+1<<endl;
                        break;
                     }
                  }
            }
      }

	return 0;
}


#include<bits/stdc++.h>
#define lint long long int
using namespace std;

int main()
{
	int k;
	cin>>k;

	vector<int >len(k);
	vector<vector<int >>arr(k);
	vector<vector<int >>hash(k);
	vector<int >sum(k,0);

	int i,j;
	int temp;
	for(i=0;i<k;i++)
	{
		cin>>len[i];

		for(j=0;j<len[i];j++)
		{
			cin>>temp;
			arr[i].push_back(temp);
			sum[i]+=temp;
		}
		for(j=0;j<len[i];j++)
			arr[i][j]=sum[i]-arr[i][j];
	}

	for(i=0;i<k;i++)
	{
		for(j=0;j<len[i];j++)
			hash[i].push_back(arr[i][j]);
	}

	for(i=0;i<k;i++)
	{
	      sort(hash[i].begin(),hash[i].end());
		hash[i].erase(unique(hash[i].begin(), hash[i].end()),hash[i].end());
	}

/*
	for(i=0;i<k;i++)
      {
            for(j=0;j<hash[i].size();j++)
            cout<<hash[i][j]<<" ";
            cout<<endl;
      }

	*/

	unordered_map<lint ,lint>mp;
	for(i=0;i<k;i++)
	{
		for(j=0;j<hash[i].size();j++)
			mp[hash[i][j]]+=1;
	}

	lint val;
	int flag=0;
	for(i=0;i<k;i++)
	{
		for(j=0;j<hash[i].size();j++)
		{
			if(mp[hash[i][j]]>1)
			{
				val=hash[i][j];
				flag++;
			}
		}
	}
	if(flag==0)
		cout<<"NO"<<endl;
	else
	{
		int count=0;
		cout<<"YES"<<endl;
		for(i=0;i<k;i++)
		{
			for(j=0;j<len[i];j++)
			{
					if(count==2)
						return 0;
					if(arr[i][j]==val)
					{
						count++;
						cout<<i+1<<" "<<j+1<<endl;
						break;
					}

			}
		}
	}
	return 0;
}


#include<bits/stdc++.h>

using namespace std;

main()
{
    vector<pair<int ,pair<int,int > > > ar;
    int test;
    int in;
    int sum;
    cin>>test;
    int i=0;
    while(i!=test)
    {
        int n;
        sum=0;
        cin>>n;
        int num[n];
        for(int j=0;j<n;j++)
        {
            cin>>num[j];

            sum=sum+num[j];

        }
        for(int m=0;m<n;m++)
        {
           ar.push_back(make_pair(sum-num[m],make_pair(i,m)));
        }
        i++;
    }
    sort(ar.begin(),ar.end());
    for(int o=0;o<ar.size();o++)
    {
        {
            if((ar[o].second.first!=ar[o+1].second.first)&&(ar[o+1].first == ar[o].first))
               {
                   cout<<"YES"<<endl;
                   cout<<ar[o].second.first+1<<" "<<ar[o].second.second+1<<endl;
                   cout<<ar[o+1].second.first+1<<" "<<ar[o+1].second.second+1;
                   return 0;
               }
        }
    }

    cout<<"NO";
    return 0;

}


/*
    FIRST OF ALL I WOULD LIKE TO REQUEST YOU ALL TO NEVER COPY OTHERS TEMPLATE
    AS IT CAN LEAD TO BIG PLAGIARISM.THANK YOU VERY MUCH.
*/
/*
Hey Everyone, this is Divyank Goyal from KIET Group Of Istitution.
I like to code in c++. This is my coding template.
I started codechef in October 2019.I love codechef Long challenge.
*/

/*  MANY OF THE FUNCTIONS HAVE BEEN COPIED FROM GEEKSFORGEEKS  */

#include <bits/stdc++.h>
using namespace std;

#define int long long
#define ll long long
#define ld long double
#define M1 1000000007
#define M2 998244353
#define pb push_back
#define mp make_pair
#define Max INT_MAX
#define Min INT_MIN
#define ff first
#define ss second
#define nn cout<<"\n";
#define countsetbit(n) __builtin_popcount(n)
/*
Value of INT_MAX is +2147483647.
Value of INT_MIN is -2147483648.
*/
ll ceill(ll a,ll b)
{
	ll k = (a+b-1)/b;
	return k;
}
void debug(char ch[100],ll value)
{
    cout<<"Value of "<<ch<<" is "<<value<<"\n";
}

void printarr(vector<ll> v)
{
    ll i;
    cout<<v.size()<<"\n";
    for(i=0;i<v.size();i++)
    {
	    cout<<v[i]<<" ";
    }
    cout<<"\n";
}

int fastpower(int x, unsigned int y, unsigned int m);
ll modInverse(int a, int m)
{
    return fastpower(a, m-2, m);
}
void printgraph( vector<vector<ll> > graph1 , ll n)
{
    for(ll i = 0; i<= n ; i++)
    {
        cout<<i<<" -> ";
        for(auto it : graph1[i])
        {
            cout<<it<<" ";
        }
        cout<<"\n";
    }
}

int fastpower(int x, unsigned int y, unsigned int m)
{
    if (y == 0)
        return 1;
    int p = fastpower(x, y/2, m) % m;
    p = (p * p) % m;

    return (y%2 == 0)? p : (x * p) % m;
}

ll fun(ll i,ll j,ll t)
{
    ll k;
    if(t==1)
    {
        cout<<"AND "<<i<<" "<<j<<endl;
        cin>>k;
    }
    else if(t==2)
    {
        cout<<"XOR "<<i<<" "<<j<<endl;
        cin>>k;
    }
    return k;
}

void funofdiv()
{
    ll n,i,j,k,l=0,mini=Max,maxi=Min,ans=0,sum=0,m;
    ll x,y,z,f,g,h,r,t,q,pos,len=0;
//  ll hash[21000];
//  string s;
    cin>>n;
    vector<ll> b(n+1);
    vector<vector<ll>> a(n+1);
    for(i=2;i<=n;i++)
    {
        k = fun(1,i,2);
        b[i] = k;
        a[k].pb(i);
    }
    z=-1;
    for(i=0;i<=n;i++)
    {
        if(a[i].size()>1)
        {
            x = a[i][0];
            y = a[i][1];
            z = i;
            break;
        }
    }
    if(z!=-1)
    {
        k = fun(x,y,1);
        l = b[x]^k;
        cout<<"! ";
        cout<<l<<" ";
        for(i=2;i<=n;i++)
        {
            cout<<(l^b[i])<<" ";
        }
        cout<<endl;
    }
    else
    {
        cout<<"! ";
        for(i=1;i<=n;i++)
        {
            cout<<i<<" ";
        }
        cout<<endl;
    }
}

signed main()
{

    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    #endif
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll num=1,i;
  //  cin>>num;
    for(i=1;i<=num;i++)
    {
//      cout<<"Case #"<<i<<": ";
        funofdiv();
    }
     return 0;
}


/*
    FIRST OF ALL I WOULD LIKE TO REQUEST YOU ALL TO NEVER COPY OTHERS TEMPLATE
    AS IT CAN LEAD TO BIG PLAGIARISM.THANK YOU VERY MUCH.
*/
/*
Hey Everyone, this is Divyank Goyal from KIET Group Of Istitution.
I like to code in c++. This is my coding template.
I started codechef in October 2019.I love codechef Long challenge.
*/

/*  MANY OF THE FUNCTIONS HAVE BEEN COPIED FROM GEEKSFORGEEKS  */

#include <bits/stdc++.h>
using namespace std;

#define int long long
#define ll long long
#define ld long double
#define M1 1000000007
#define M2 998244353
#define pb push_back
#define mp make_pair
#define Max INT_MAX
#define Min INT_MIN
#define ff first
#define ss second
#define nn cout<<"\n";
#define countsetbit(n) __builtin_popcount(n)
/*
Value of INT_MAX is +2147483647.
Value of INT_MIN is -2147483648.
*/
ll ceill(ll a,ll b)
{
	ll k = (a+b-1)/b;
	return k;
}
void debug(char ch[100],ll value)
{
    cout<<"Value of "<<ch<<" is "<<value<<"\n";
}

void printarr(vector<ll> v)
{
    ll i;
    cout<<v.size()<<"\n";
    for(i=0;i<v.size();i++)
    {
	    cout<<v[i]<<" ";
    }
    cout<<"\n";
}

int fastpower(int x, unsigned int y, unsigned int m);
ll modInverse(int a, int m)
{
    return fastpower(a, m-2, m);
}
void printgraph( vector<vector<ll> > graph1 , ll n)
{
    for(ll i = 0; i<= n ; i++)
    {
        cout<<i<<" -> ";
        for(auto it : graph1[i])
        {
            cout<<it<<" ";
        }
        cout<<"\n";
    }
}

int fastpower(int x, unsigned int y, unsigned int m)
{
    if (y == 0)
        return 1;
    int p = fastpower(x, y/2, m) % m;
    p = (p * p) % m;

    return (y%2 == 0)? p : (x * p) % m;
}

ll fun(ll i,ll j,ll t)
{
    ll k;
    if(t==1)
    {
        cout<<"AND "<<i<<" "<<j<<endl;
        cin>>k;
    }
    else if(t==2)
    {
        cout<<"XOR "<<i<<" "<<j<<endl;
        cin>>k;
    }
    return k;
}

void funofdiv()
{
    ll n,i,j,k,l=0,mini=Max,maxi=Min,ans=0,sum=0,m;
    ll x,y,z,f,g,h,r,t,q,pos,len=0;
//  ll hash[21000];
//  string s;
    cin>>n;
    vector<ll> b(n+1);
    vector<vector<ll>> a(n+1);
    for(i=2;i<=n;i++)
    {
        k = fun(1,i,2);
        b[i] = k;
        a[k].pb(i);
    }
    z=-1;
    for(i=0;i<=n;i++)
    {
        if(a[i].size()>1)
        {
            x = a[i][0];
            y = a[i][1];
            z = i;
            break;
        }
    }
    if(z!=-1)
    {
        k = fun(x,y,1);
        l = b[x]^k;
        cout<<"! ";
        cout<<l<<" ";
        for(i=2;i<=n;i++)
        {
            cout<<(l^b[i])<<" ";
        }
        cout<<endl;
    }
}

signed main()
{

    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    #endif
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll num=1,i;
  //  cin>>num;
    for(i=1;i<=num;i++)
    {
//      cout<<"Case #"<<i<<": ";
        funofdiv();
    }
     return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
//#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} watch_this;

int ask(string s, int i, int j) {
  cout << s << " " << i << " " << j << endl;
  int x;
  cin >> x;
  return x;
}

int main() {
  int n;
  cin >> n;
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  vector<int> ans;
  ans = {a, b, c};
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 2, i);
    ans.push_back(d ^ a);
  }
  cout << "! ";
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
//#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} watch_this;

int main() {
  int n;
  cin >> n;
  auto ask = [&](string s, int i, int j) {
      cout << s << " " << i << " " << j << endl;
      int x;
      cin >> x;
      return x;
  };
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  vector<int> ans;
  ans = {a, b, c};
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 2, i);
    ans.emplace_back(d ^ b);
  }
  cout << "! ";
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
//#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} zeroIq;

int ask(string s, int i, int j) {
  cout << s << " " << i << " " << j << endl;
  int x;
  cin >> x;
  return x;
}

int main() {
  int n;
  cin >> n;
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  vector<int> ans;
  ans = {a, b, c};
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 1, i);
    ans.push_back(d ^ a);
  }
  cout << "! ";
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
//#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} zeroIq;

int ask(string s, int i, int j) {
  cout << s << " " << i << " " << j << endl;
  int x;
  cin >> x;
  return x;
}

int main() {
  int n;
  cin >> n;
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  cout << "! ";
  cout << a << " " << b << " " << c << " ";
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 1, i);
    cout << (d ^ a) << " ";
  }
  return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} zeroIq;

int ask(string s, int i, int j) {
  cout << s << " " << i << " " << j << endl;
  int x;
  cin >> x;
  return x;
}

int main() {
  int n;
  cin >> n;
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  vector<int> ans;
  ans = {a, b, c};
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 1, i);
    ans.push_back(d ^ a);
  }
  cout << "! ";
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}


/*
 *  WATCH THIS
 */

#include <bits/stdc++.h>

using namespace std;
//#define endl '\n'

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const ll N = 1e5 + 2, NN = 1001, oo = INT_MAX, mod = 1e9 + 7;

void debug() { cerr << endl; }

template<typename Head, typename... Tail>
void debug(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug(T...);
}

struct Zeroiq {
    Zeroiq() {
      ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      cout << fixed << setprecision(15);
    }
} watch_this;

int ask(string s, int i, int j) {
  cout << s << " " << i << " " << j << endl;
  int x;
  cin >> x;
  return x;
}

int main() {
  int n;
  cin >> n;
  int axorb = ask("XOR", 1, 2);
  int axorc = ask("XOR", 1, 3);
  int bxorc = axorc ^axorb;
  int aandb = ask("AND", 1, 2);
  int bandc = ask("AND", 2, 3);
  int aandc = ask("AND", 1, 3);
  //a=x+y-z/2;
  int a = axorb + axorc - bxorc + 2 * aandb + 2 * aandc - 2 * bandc;
  a /= 2;
  int b = axorb + 2 * aandb;
  b -= a;
  int c = axorc + 2 * aandc;
  c -= a;
  vector<int> ans;
  ans = {a, b, c};
  for (int i = 4; i <= n; ++i) {
    int d = ask("XOR", 2, i);
    ans.push_back(d ^ b);
  }
  cout << "! ";
  for (int i = 0; i < ans.size(); ++i) {
    cout << ans[i] << " ";
  }
  return 0;
}


#include<bits/stdc++.h>
#include <stdio.h>
using namespace std;
#define M1 (ll)1000000007
#define M2 (ll)998244353
#define Pi 3.141592653
#define exp 2.71828
#define ll long long
#define ull unsigned long long
#define pi pair<int,int>
#define pl pair<ll,ll>
#define vi vector<int>
#define vl vector<ll>
#define di deque<int>
#define dl deque<ll>
#define dii deque<pi>
#define dll deque<pl>
#define vvi vector<vi>
#define vvl vector<vl>
#define vii vector<pi>
#define vll vector<pl>
#define pb push_back
#define pp pop_back
#define pf push_front
#define pt pop_front
#define mp make_pair
#define in insert
#define er erase
#define ff first
#define ss second
#define ub upper_bound
#define lb lower_bound
#define rp(i,a,b) for(int i=a;i<b;i++)
#define rpt(i,a,b,t) for(int i=a;i<b&&t<1;i++)
#define rep(i,n) for(int i = 0 ; i<n ; i++)
#define rept(i,n,t) for(int i = 0 ; i<n&&t<1 ; i++)
#define repr(i,n) for(int i = n-1 ; i>=0 ; i--)
#define reprt(i,n,t) for(int i=n-1;i>=0&&t<1;i--)
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define SORT(v) sort(v.begin(),v.end())
ll arr[] = {0,0,2,3,1,7,5,0} ;
ll check(ll x , ll y){
    return arr[x]&arr[y] ;
}
ll check1(ll x, ll y){
    return arr[x]^arr[y] ;
}
ll compute(ll a, ll ind , ll bits){
    cout << "XOR 0 " << ind << endl ;
    ll x = 0 , tempx = 0 , tempa = 0 , ret = 0 ;
    cin >> x ;
    //x = check1(0, ind) ;
    for(ll i = 0 ; i < bits ; i++){
        tempx = x >> i ;
        tempa = a >> i ;
        if(tempx&1)
            ret += (ll)pow(2, i)*((ll)(!(tempa&1))) ;
        else ret += (ll)pow(2, i)*((ll)(tempa&1)) ;
    }
    return ret ;
}
void solve(){
	ll n = 0 , axb = 0 , bxc = 0 , axc = 0 , ab = 0 , bc = 0 , ac = 0, asb = 0 , bsc = 0 , asc = 0 , bits = 0 ;
    cin >> n ;
    ll a[n] ;
    pl temp ;
    cout << "AND 0 1" << endl ;
    cin >> ab ;
    cout << "AND 1 2" << endl ;
    cin >> bc ;
    cout << "AND 0 2" << endl ;
    cin >> ac ;
    cout << "XOR 0 1" << endl ;
    cin >> axb ;
    cout << "XOR 1 2" << endl ;
    cin >> bxc ;
    //ab = check(0,1) , bc = check(1,2) , ac = check(0,2) , axb = check1(0,1) , bxc = check1(1,2) ;
    axc = axb^bxc ;
    asb = axb + 2*(ab) ;
    bsc = bxc + 2*(bc) ;
    asc = axc + 2*(ac) ;
    bits = log(n)/log(2) ;
    a[0] = (asb-bsc+asc)/2 , a[1] = (bsc-asc+asb)/2 , a[2] = (asc-asb+bsc)/2 ;
    for(int i = 3 ; i < n ; i ++)
        a[i] = compute(a[0], i , bits) ;
    cout << "! " ;
    for(ll i = 0 ; i < n ; i++)
        cout << a[i] << " " ;
    cout << endl ;
}
int main(){
	ll T = 1 ;
	//cin >> T ;
	while(T--)
		solve() ;
}


#include<bits/stdc++.h>
#include <stdio.h>
using namespace std;
#define M1 (ll)1000000007
#define M2 (ll)998244353
#define Pi 3.141592653
#define exp 2.71828
#define ll long long
#define ull unsigned long long
#define pi pair<int,int>
#define pl pair<ll,ll>
#define vi vector<int>
#define vl vector<ll>
#define di deque<int>
#define dl deque<ll>
#define dii deque<pi>
#define dll deque<pl>
#define vvi vector<vi>
#define vvl vector<vl>
#define vii vector<pi>
#define vll vector<pl>
#define pb push_back
#define pp pop_back
#define pf push_front
#define pt pop_front
#define mp make_pair
#define in insert
#define er erase
#define ff first
#define ss second
#define ub upper_bound
#define lb lower_bound
#define rp(i,a,b) for(int i=a;i<b;i++)
#define rpt(i,a,b,t) for(int i=a;i<b&&t<1;i++)
#define rep(i,n) for(int i = 0 ; i<n ; i++)
#define rept(i,n,t) for(int i = 0 ; i<n&&t<1 ; i++)
#define repr(i,n) for(int i = n-1 ; i>=0 ; i--)
#define reprt(i,n,t) for(int i=n-1;i>=0&&t<1;i--)
#define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define SORT(v) sort(v.begin(),v.end())
ll arr[] = {0,0,2,3,1,7,5,0} ;
ll check(ll x , ll y){
    return arr[x]&arr[y] ;
}
ll check1(ll x, ll y){
    return arr[x]^arr[y] ;
}
ll compute(ll a, ll ind , ll bits){
    cout << "XOR 0 " << i << endl ;
    ll x = 0 , tempx = 0 , tempa = 0 , ret = 0 ;
    cin >> x ;
    //x = check1(0, ind) ;
    for(ll i = 0 ; i < bits ; i++){
        tempx = x >> i ;
        tempa = a >> i ;
        if(tempx&1)
            ret += (ll)pow(2, i)*((ll)(!(tempa&1))) ;
        else ret += (ll)pow(2, i)*((ll)(tempa&1)) ;
    }
    return ret ;
}
void solve(){
	ll n = 0 , axb = 0 , bxc = 0 , axc = 0 , ab = 0 , bc = 0 , ac = 0, asb = 0 , bsc = 0 , asc = 0 , bits = 0 ;
    cin >> n ;
    ll a[n] ;
    pl temp ;
    cout << "AND 0 1" << endl ;
    cin >> ab ;
    cout << "AND 1 2" << endl ;
    cin >> bc ;
    cout << "AND 0 2" << endl ;
    cin >> ac ;
    cout << "XOR 0 1" << endl ;
    cin >> axb ;
    cout << "XOR 1 2" << endl ;
    cin >> bxc ;
    //ab = check(0,1) , bc = check(1,2) , ac = check(0,2) , axb = check1(0,1) , bxc = check1(1,2) ;
    axc = axb^bxc ;
    asb = axb + 2*(ab) ;
    bsc = bxc + 2*(bc) ;
    asc = axc + 2*(ac) ;
    bits = log(n)/log(2) ;
    a[0] = (asb-bsc+asc)/2 , a[1] = (bsc-asc+asb)/2 , a[2] = (asc-asb+bsc)/2 ;
    for(int i = 3 ; i < n ; i ++)
        a[i] = compute(a[0], i , bits) ;
    cout << "! " ;
    for(ll i = 0 ; i < n ; i++)
        cout << a[i] << " " ;
    cout << endl ;
}
int main(){
	ll T = 1 ;
	//cin >> T ;
	while(T--)
		solve() ;
}