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.
// package stupiddog;

import java.io.*;
import java.lang.*;
import java.util.*;

/**
 *
 * @author Huynh Sam Ha - BKU - VN - 1610852@hcmut.edu.vn
 * @author Stupid - Dog
 *
 */
public class StupidDog {

    public static void main(String[] args) throws IOException {
        inputSystem = new InputStreamReader(System.in);
        outputSystem = new OutputStreamWriter(System.out);
        //inputFile = new FileReader("D:/Java/File/inp.txt");
        //outputFile = new FileWriter("D:/Java/File/out.txt");

        inp = new BufferedReader(inputSystem);
        out = new PrintWriter(outputSystem);
        
        solve();
        
        inp.close();
        out.close();
    }

    static void solve() throws IOException {
        int a[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        int m = nextInt(); int d = nextInt();
        if (a[m] == 31) {
            if (d >= 6) out.println("6");
            else out.println("5");
        }
        else if (a[m] == 30) {
            if (d == 7) out.println("6");
            else out.println("5");
        }
        else {
            if (d == 1) out.println("4");
            else out.println("5");
        }
    }   
    
    /* ---------------------------------------------------- */
    static BufferedReader inp;
    static PrintWriter out;
    static InputStreamReader inputSystem;
    static OutputStreamWriter outputSystem;
    static Reader inputFile;
    static Writer outputFile;
    static StringTokenizer token;

    /*NSt + TAB*/
    static String nextString() throws IOException {
        while (token == null || !token.hasMoreElements()) {
            token = new StringTokenizer(inp.readLine());
        }
        return token.nextToken();
    }

    /*NI + TAB*/
    static int nextInt() throws IOException {
        return Integer.parseInt(nextString());
    }

    /*NL + TAB*/
    static long nextLong() throws IOException {
        return Long.parseLong(nextString());
    }

    /*NDB + TAB*/
    static double nextDouble() throws IOException {
        return Double.parseDouble(nextString());
    }
}

/**
 * 
 * TAB 
 * out.println(); outln 
 * out.printf(""); outf
 *
 */
