import java.io.*; import java.util.*; public class jogger { static int CountIntersections(int[][] d, int i, int j) { HashSet h = new HashSet(); for (int k = 0; k < d.length; k++) { if (k != i && k != j) h.add(d[i][k] - d[k][j]); } return h.size(); } static int ComputeLongest(int[][] d, int r, int t) { int longest = 0; int n = d.length; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int intersections = CountIntersections(d, i, j); int total_time = d[i][j] * r + intersections * t; longest = Math.max(longest, total_time); } } return longest; } public static void main(String[] args) { Scanner s = new Scanner(System.in); while (true) { int n = s.nextInt(); if (n == 0) break; int r = s.nextInt(); int t = s.nextInt(); int d[][] = new int[n][n]; for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) d[i][j] = s.nextInt(); System.out.println(ComputeLongest(d, r, t)); } } };