For this Question: Ram is learning chess for the first time, So his father first starts his training with the piece <b>Knight</b>. His father gave Ram 2 random points ((x, y) and (a, b)), ie position of any piece on a 8x8 chess board and then asks Ram can he put the knight on the board so that both of the pieces get attacked at the same time? If yes then print "YES" we can otherwise "NO".The first line of the input contains a space separated integer T.
The first line of each test case contains two space separated integer x, y.
The second line of each test case contains two space separated integer a, b.

<b>Constraints</b>
1 ≤ T ≤ 5000
1 ≤ x, y ≤ 8
1 ≤ a, b ≤ 8
Both the cells are distinctPrint "YES" if the fork exists otherwise print "NO".Sample Input 
3
8 1
7 3
3 7
5 2
3 5
2 2

Sample Output
NO
NO
YES

<b>Explanation</b>
For test cases 1 and 2 no such point exists, but for test case 3 (1, 4) is the point that can cause a fork., I have written this Solution Code: import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.HashSet;
import java.io.PrintStream;
import java.io.InputStream;

public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        FastReader in = new FastReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TheAttackOfKnight solver = new TheAttackOfKnight();
        int testCount = Integer.parseInt(in.next());
        for (int i = 1; i <= testCount; i++)
            solver.solve(i, in, out);
        out.close();
    }

    static class TheAttackOfKnight {
        public void solve(int testNumber, FastReader in, PrintWriter out) {
            int i, j, k;

            int x1 = in.nextInt();
            int y1 = in.nextInt();

            int x2 = in.nextInt();
            int y2 = in.nextInt();

            HashSet<String> hs = new HashSet<>();
            HashSet<String> hs2 = new HashSet<>();

            int a1 = x1, b1 = y1;
            int a2 = x2, b2 = y2;

            if (a1 + 2 < 9) {
                if (b1 + 1 < 9) hs.add((a1 + 2) + " " + (b1 + 1));
                if (b1 - 1 > 0) hs.add((a1 + 2) + " " + (b1 - 1));
            }
            if (a1 + 1 < 9) {
                if (b1 + 2 < 9) hs.add((a1 + 1) + " " + (b1 + 2));
                if (b1 - 2 > 0) hs.add((a1 + 1) + " " + (b1 - 2));
            }
            if (a1 - 2 > 0) {
                if (b1 + 1 < 9) hs.add((a1 - 2) + " " + (b1 + 1));
                if (b1 - 1 > 0) hs.add((a1 - 2) + " " + (b1 - 1));
            }
            if (a1 - 1 > 0) {
                if (b1 + 2 < 9) hs.add((a1 - 1) + " " + (b1 + 2));
                if (b1 - 2 > 0) hs.add((a1 - 1) + " " + (b1 - 2));
            }


            boolean b = false;
            if (a2 + 2 < 9) {
                if (b2 + 1 < 9) {
                    if (hs.contains((a2 + 2) + " " + (b2 + 1))) b = true;
                }
                if (b2 - 1 > 0) {
                    if (hs.contains((a2 + 2) + " " + (b2 - 1))) b = true;
                }
            }
            if (a2 + 1 < 9) {
                if (b2 + 2 < 9) {
                    if (hs.contains((a2 + 1) + " " + (b2 + 2))) b = true;
                }
                if (b2 - 2 > 0) {
                    if (hs.contains((a2 + 1) + " " + (b2 - 2))) b = true;
                }
            }
            if (a2 - 2 > 0) {
                if (b2 + 1 < 9) {
                    if (hs.contains((a2 - 2) + " " + (b2 + 1))) b = true;
                }
                if (b2 - 1 > 0) {
                    if (hs.contains((a2 - 2) + " " + (b2 - 1))) b = true;
                }
            }
            if (a2 - 1 > 0) {
                if (b2 + 2 < 9) {
                    if (hs.contains((a2 - 1) + " " + (b2 + 2))) b = true;
                }
                if (b2 - 2 > 0) {
                    if (hs.contains((a2 - 1) + " " + (b2 - 2))) b = true;
                }
            }

            if (b) out.println("YES");
            else out.println("NO");


        }

    }

    static class FastReader {
        static final int BUFSIZE = 1 << 20;
        static byte[] buf;
        static int index;
        static int total;
        static InputStream in;

        public FastReader(InputStream is) {
            try {
                in = is;
                buf = new byte[BUFSIZE];
            } catch (Exception e) {
            }
        }

        private int scan() {
            try {
                if (index >= total) {
                    index = 0;
                    total = in.read(buf);
                    if (total <= 0)
                        return -1;
                }
                return buf[index++];
            } catch (Exception | Error e) {
                System.err.println(e.getMessage());
                return 13 / 0;
            }
        }

        public String next() {
            int c;
            for (c = scan(); c <= 32; c = scan()) ;
            StringBuilder sb = new StringBuilder();
            for (; c > 32; c = scan())
                sb.append((char) c);
            return sb.toString();
        }

        public int nextInt() {
            int c, val = 0;
            for (c = scan(); c <= 32; c = scan()) ;
            boolean neg = c == '-';
            if (c == '-' || c == '+')
                c = scan();
            for (; c >= '0' && c <= '9'; c = scan())
                val = (val << 3) + (val << 1) + (c & 15);
            return neg ? -val : val;
        }

    }
}

, In this Programming Language: Java, Now tell me if this Code is compilable or not?