rem ************************************

rem ************Tylor Noll**************

rem **************SUDOKU****************

rem **********Intermediate 5************

rem ************True BASIC**************

rem ***********Conrad Weiser************

rem ************************************

DIM grid(9,9),num(9)

FOR i=1 to 9

    INPUT gridline$

    FOR j=1 to 9

        LET grid(i,j)=val(gridline$[j:j])

    NEXT j

NEXT i

FOR i=1 to 9

    LET num(i)=i

NEXT i

DO

   LET flag=0

   FOR i=1 to 9

       FOR j=1 to 9

           IF grid(i,j)=0 then

              LET count=0

              FOR k=1 to 9

                  FOR l=1 to 9

                      IF num(l)=grid(k,j) then

                         LET num(l)=0

                      END IF

                  NEXT l

              NEXT k

              FOR k=1 to 9

                  FOR l=1 to 9

                      IF num(l)=grid(i,k) then

                         LET num(l)=0

                      END IF

                  NEXT l

              NEXT k

              IF i>6 then

                 LET temp=7

              ELSE IF i>3 then

                 LET temp=4

              ELSE

                 LET temp=1

              END IF

              IF j>6 then

                 LET temp2=7

              ELSE IF j>3 then

                 LET temp2=4

              ELSE

                 LET temp2=1

              END IF

              FOR k=temp to temp+2

                  FOR l=temp2 to temp2+2

                      FOR m=1 to 9

                          IF num(m)=grid(k, l) and grid(k, l)<>0 then

                             IF grid(k, l)<>grid(i,j) then

                                LET num(m)=0

                             END IF

                          END IF

                      NEXT m

                  NEXT l

              NEXT k

              FOR k=1 to 9

                  IF num(k)<>0 then

                     LET count=count+1

                     LET answer=k

                  END IF

              NEXT k

              IF count=1 then

                 LET grid(i,j)=num(answer)

              ELSE

                 LET flag=1

              END IF

              FOR k=1 to 9

                  LET num(k)=k

              NEXT k

           END IF

       NEXT j

   NEXT i

   IF flag=0 then EXIT DO

LOOP

FOR i=1 to 5

    INPUT x,y

    PRINT grid(x,y)

    PRINT

NEXT i

END