Petr wants to make a calendar for current month. For this purpose he draws a table in which columns correspond to weeks (a week is seven consequent days from Monday to Sunday), rows correspond to weekdays, and cells contain dates. For example, a calendar for January 2017 should look like on the picture:

<image>

Petr wants to know how many columns his table should have given the month and the weekday of the first date of that month? Assume that the year is non-leap.

Input

The only line contain two integers m and d (1 ≤ m ≤ 12, 1 ≤ d ≤ 7) — the number of month (January is the first month, December is the twelfth) and the weekday of the first date of this month (1 is Monday, 7 is Sunday).

Output

Print single integer: the number of columns the table should have.

Examples

Input

1 7


Output

6


Input

1 1


Output

5


Input

11 6


Output

5

Note

The first example corresponds to the January 2017 shown on the picture in the statements.

In the second example 1-st January is Monday, so the whole month fits into 5 columns.

In the third example 1-st November is Saturday and 5 columns is enough.
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class A {
	public static long inf1 = Long.MAX_VALUE;
	public static void main(String[] args) throws IOException{
		FastScanner in = new FastScanner(System.in);
		PrintWriter out= new PrintWriter(System.out);
		int [] month= {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
		int m= in.nextInt();
		int d= in.nextInt();
		int num= month[m];
		boolean [][] grid= new boolean[10][7];
		grid[0][d-1]= true;
		int count=1;
		for (int j = d; j < grid[0].length; j++) {
			if(count<num){
				grid[0][j]= true;
				count++;
			}
		}
		for (int i = 1; i < grid.length; i++) {
			for (int j = 0; j < grid[i].length; j++) {
				if(count<num){
					grid[i][j]= true;
					count++;
				}
			}
		}
		int res=0;
		for (int i = 0; i < grid.length; i++) {
			boolean has=false;
			for (int j = 0; j < grid[i].length; j++) {
				if(grid[i][j]) has= true;
			}
			if(has) res++;
		}
		System.out.println(res);
		
	}
		
		
	static class FastScanner {
		BufferedReader br;
		StringTokenizer st;
		public FastScanner(InputStream in) {
			br = new BufferedReader(new InputStreamReader(in));
			st = new StringTokenizer("");
		}
		public double nextDouble() throws NumberFormatException, IOException {
			return Double.parseDouble(next());
		}
		public String next() throws IOException {
			if(!st.hasMoreTokens()) {
				st = new StringTokenizer(br.readLine());
				return next();
			}
			return st.nextToken();
		}
		public int nextInt() throws IOException {
			return Integer.parseInt(next());
		}
		public long nextLong() throws IOException {
			return Long.parseLong(next());
		}
	}
}
//12 4
//1 3 5 7
//10 1
//3
//0 0