1 1000000000 7
1000000000 9
 3 2 2
2 4
2 1
3 6
 2 1000000000 100000
1000000000 1000000
1000000000 10000
 1 100 100
50 70
 1 100 100
101 100

1
1000000000 8 2
2 3 1
1000000000 100001 1
99 100 1
101 100
import java.io.*;
import java.util.*;
 
 
public class Main{
static int mod = (int)(Math.pow(10, 9) + 7);
   public static void main(String[] args) {
      MyScanner sc = new MyScanner();
      out = new PrintWriter(new BufferedOutputStream(System.out));
      int n =sc.nextInt();
      int sx = sc.nextInt();
      int sy = sc.nextInt();
      int[] q = new int[4];
      int[] axes = new int[4];
      for (int i = 0; i < n; i++) {
    	  int x = sc.nextInt();
    	  int y = sc.nextInt();
    	  x -= sx;
    	  y -= sy;
    	  if (x > 0) {
    		  if (y > 0) q[0]++;
    		  if (y < 0) q[3]++;
    	  }
    	  if (x < 0) {
    		  if (y > 0) q[1]++;
    		  if (y < 0) q[2]++;
    	  }
    	  
    	  if (x == 0) {
    		 if (y > 0) {
    			 axes[0]++;
    		 }
    		 else {
    			 axes[2]++;
    		 }
    	  }
    	  if (y == 0) {
    		  if (x < 0) {
    			  axes[1]++;
    		  }
    		  else axes[3]++;
    	  }
    	  
      }
//      for (int a: q) {
//    	  out.print(a + " ");
//      }
//      out.println();
//      for (int a: axes) out.print(a + " ");
//      out.println();
      int max = 0;
      int chosenX = 0;
      int chosenY = 0;
      if (max <= q[0] + q[1] + axes[0]) {
    	  max = q[0] + q[1] + axes[0];
    	  chosenX = sx+1;
    	  chosenY = sy;
      }
      if (max <= q[1] + q[2] + axes[1]) {
    	  max = q[1] + q[2] + axes[1];
    	  chosenX = sx;
    	  chosenY = sy+1;
      }
      if (max <= q[2] + q[3] + axes[2]) {
    	  max = q[2] + q[3] + axes[2];
    	  chosenX = sx-1;
    	  chosenY = sy;
      }
      if (max <= q[0] + q[3] + axes[3]) {
    	  max = q[0] + q[3] + axes[3];
    	  chosenX = sx;
    	  chosenY = sy-1;
      }
      
      out.println(max);
      out.println(chosenX + " " + chosenY);
      
      out.close();
   }
   
   static long pow(long a, long N) {
	   if (N == 0) return 1;
	   else if (N == 1) return a;
	   else {
		   long R = pow(a,N/2);
		   if (N % 2 == 0) {
			   return R*R;
		   }
		   else {
			   return R*R*a;
		   }
	   }
   }
   
   static long powMod(long a, long N) {
	   if (N == 0) return 1;
	   else if (N == 1) return a % mod;
	   else {
		   long R = powMod(a,N/2) % mod;
		   R *= R % mod;
		   if (N % 2 == 1) {
			   R *= a % mod;
		   }
			   return R % mod;
	   }
   }
static void mergeSort(int[] A){ // low to hi sort, single array only
      int n = A.length;
      if (n < 2) return;
      int[] l = new int[n/2];
      int[] r = new int[n - n/2];
 
      for (int i = 0; i < n/2; i++){
        l[i] = A[i];
      }
 
      for (int j = n/2; j < n; j++){
        r[j-n/2] = A[j];
      }
 
      mergeSort(l);
      mergeSort(r);
      merge(l, r, A);
    }
 
    static void merge(int[] l, int[] r, int[] a){
      int i = 0, j = 0, k = 0;
      while (i < l.length && j < r.length && k < a.length){
        if (l[i] < r[j]){
          a[k] = l[i];
          i++;
        }
        else{
          a[k] = r[j];
          j++;
        }
        k++;
      }
      while (i < l.length){
        a[k] = l[i];
        i++;
        k++;
      }
 
      while (j < r.length){
        a[k] = r[j];
        j++;
        k++;
      }
    }

   

   //-----------PrintWriter for faster output---------------------------------
   public static PrintWriter out;
      
   //-----------MyScanner class for faster input----------
   public static class MyScanner {
      BufferedReader br;
      StringTokenizer st;
 
      public MyScanner() {
         br = new BufferedReader(new InputStreamReader(System.in));
      }
 
      String next() {
          while (st == null || !st.hasMoreElements()) {
              try {
                  st = new StringTokenizer(br.readLine());
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          return st.nextToken();
      }
 
      int nextInt() {
          return Integer.parseInt(next());
      }
 
      long nextLong() {
          return Long.parseLong(next());
      }
 
      double nextDouble() {
          return Double.parseDouble(next());
      }
 
      String nextLine(){
          String str = "";
	  try {
	     str = br.readLine();
	  } catch (IOException e) {
	     e.printStackTrace();
	  }
	  return str;
      }

   }
   //--------------------------------------------------------
}





