import java.util.*; import java.io.*; class Box { public int w, h, x, y; Box (int a, int b, int c, int d){ w = a; h = b; x = c; y = d; } } public class Main { int width; int height; ArrayList boxes; Box arr[]; int partx[], party[]; public int calc(){ int area = 0; for (int i = 0; i < partx.length - 1; i++){ for (int j = 0; j < party.length - 1; j++){ int x1 = partx[i], x2 = partx[i+1]; int y1 = party[j], y2 = party[j+1]; boolean contained = false; for (int m = 0; !contained && m < arr.length; m++){ if (x1 >= arr[m].x && x2 <= arr[m].x + arr[m].w && y1 >= arr[m].y && y2 <= arr[m].y + arr[m].h){ contained = true; } } if (!contained) area += (x2 - x1) * (y2 - y1); } } return area; } public int doit(){ ArrayList px = new ArrayList(); ArrayList py = new ArrayList(); px.add (new Integer(0)); px.add (new Integer (width)); py.add (new Integer(0)); py.add (new Integer (height)); for (int i = 0; i < arr.length; i++){ Integer j = new Integer (arr[i].x); Integer k = new Integer (arr[i].y); if (!px.contains (j)) px.add (j); if (!py.contains (k)) py.add (k); j = new Integer (arr[i].x + arr[i].w); k = new Integer (arr[i].y + arr[i].h); if (!px.contains (j)) px.add (j); if (!py.contains (k)) py.add (k); } Collections.sort (px); Collections.sort (py); partx = new int[px.size()]; party = new int[py.size()]; for (int i = 0; i < partx.length; i++) partx[i] = ((Integer) px.get(i)).intValue(); for (int i = 0; i < party.length; i++) party[i] = ((Integer) py.get(i)).intValue(); return calc(); } public void run(){ try { BufferedReader br = new BufferedReader (new InputStreamReader (System.in)); String s; while ((s = br.readLine()) != null){ StringTokenizer st = new StringTokenizer (s); width = Integer.parseInt (st.nextToken()); height = Integer.parseInt (st.nextToken()); boxes = new ArrayList(); while ((s = br.readLine()) != null){ int a, b, c, d; StringTokenizer st2 = new StringTokenizer (s); a = Integer.parseInt (st2.nextToken()); b = Integer.parseInt (st2.nextToken()); c = Integer.parseInt (st2.nextToken()); d = Integer.parseInt (st2.nextToken()); if (a == 0 && b == 0 && c == 0 && d == 0) break; boxes.add (new Box (a,b,c,d)); } arr = (Box[]) boxes.toArray(new Box[0]); System.out.println ("Floor has " + doit() + " area not covered"); } br.close(); } catch (Exception e){ e.printStackTrace(); } } public static void main (String args[]){ new Main().run(); } }