/*
함수 -> 메소드
import java.util.*;
public class Main {
public static void main(String[] args) {
}
}
자동완성 ctrl+space
컴파일 ctrl+f11
출력문 syso+자동완성
*/
/*
import java.util.*;
class Main{
public static void main(String[] args) {
System.out.println("world\n");
System.out.print("hello");
}
}
*/
/*
import java.util.*;
class Main{
public static void main(String[] args) {
System.out.println("Hello");
}
}
*/
/*
import java.util.*;
class Main{
public static void main(String[] args) {
//1. 스캐너 객체 생성
Scanner sc = new Scanner(System.in);
//자료형
// 정수 int long
// 실수 float double
// 문자 char
// +
// 불린 boolean true or false
// 문자열 String
// int a = sc.nextInt();
// int b = sc.nextInt();
// System.out.println("입력하신 숫자는"+(a+b));
//
// float c = sc.nextFloat();
// double d = sc.nextDouble();
//
// boolean e = sc.nextBoolean();
// String str = sc.next(); //한 단어
// String str = sc.nextLine(); //한 문장
// System.out.println(str);
// float a = sc.nextFloat();
// System.out.printf("%.2f",a);
// System.out.println(a);
// 산술 연산자 + - * / %
// overflow casting
// int a = 2147483647;
// int b = 10;
// System.out.println((long)a+b);
//System.out.println((float)10/3);
// 비교연산자 > < >= <= == !=
//a=1; a는 1이야. (명령. 대입)
//a==1 a와1이같다면 true라고 말해주겠니?
//논리연산자 ! && ||
//System.out.println(!(10!=8) || 10>8);
//삼항연산자 ( 조건식 )? ( ):( )
//int a = sc.nextInt();
//String b = Integer.toString(a);
// String a = sc.next();
// int b = Integer.parseInt(a);
// System.out.println(b+8);
}
}
*/
/*
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
System.out.print(a+" "+a+" "+a);
}
}
*/
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// long a=sc.nextLong();
// long b=sc.nextLong();
// System.out.println(a+b);
//
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// int b=sc.nextInt();
//
// System.out.println(a+b);
// System.out.println(a-b);
// System.out.println(a*b);
// System.out.println(a/b);
// System.out.println(a%b);
// System.out.printf("%.2f", (float)a/b);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// int b=sc.nextInt();
//
// System.out.println(a+"+"+b+"="+(a+b));
// System.out.println(a+"-"+b+"="+(a-b));
// System.out.println(a+"*"+b+"="+a*b);
// System.out.println(a+"/"+b+"="+a/b);
//
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// float a=sc.nextFloat();
// float b=sc.nextFloat();
//
// System.out.printf("%.2f", a*b);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// System.out.println(a/60+" "+a%60);
// }
//}
/*
조건문
if() {
}
else if() {
}
else {
}
switch() {
case :
case :
default : break;
}
반복문
for(;;) {
}
while(true) {
if() {
break;
}
if() {
continue;
}
}
do {
}while();
배열
int arr[50]; (x)
int arr[] = new int[50];
int[] arr = new int[n];
float[] arr = new float[10];
String str != char[] str
import java.util.*;
class Main{
public static void main(String[] args) {
String str = "Hello";
String atr = " world ";
//문자열 클래스 내의 유용한 메소드
//System.out.println(str+atr);
//System.out.println(str.concat(atr));
//str = str+" "+atr;
//str[0] (x)
//str.charAt(0)
// System.out.println(str.contains("h"));
// System.out.println(str.length());
// System.out.println(str.replace("he", "j"));
// System.out.println(str.substring(2));
// System.out.println(str.substring(2, 4));
// System.out.println(str.toLowerCase());
// System.out.println(str.toUpperCase());
//System.out.println(atr.trim()); //맨앞이나맨뒤에 공백들을 제거
// System.out.println((int)str.charAt(0));
// System.out.println((char)65);
//
// for(int i=0;i<str.length();i++) {
// System.out.println("\""+str.charAt(i)+"\"");
// }
}
}
*/
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// if(a%7==0)
// System.out.println("multiple");
// else
// System.out.println("not multiple");
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// int b=sc.nextInt();
// int c=sc.nextInt();
//
// if(a<=170||b<=170||c<=170)
// System.out.println("CRASH");
// else
// System.out.println("PASS");
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int a=sc.nextInt();
// int b=sc.nextInt();
//
// if(b>=30)
// System.out.println(a+" "+(b-30));
// else if(b<30) {
// if(a==0)
// System.out.println(23+" "+(b+30));
// else
// System.out.println((a-1)+" "+(b+30));
// }
//
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
//
// int a=sc.nextInt();
// int b=sc.nextInt();
//
// if(b%a==0)
// System.out.println(a+"*"+(b/a)+"="+b);
// else if(a%b==0)
// System.out.println(b+"*"+(a/b)+"="+a);
// else
// System.out.println("none");
// }
//}
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int year=sc.nextInt();
int month=sc.nextInt();
if(month==2) {
if(year%400==0 ||year%4==0&&year%100!=0) {
System.out.println(29);
}
else {
System.out.println(28);
}
}
else if(month==4||month==6||month==9||month==11) {
System.out.println(30);
}
else {
System.out.println(31);
}
}
}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
//
// int a=sc.nextInt();
// int b=sc.nextInt();
//
// for(int i=a;i<=b;i++)
// if(i%2!=0)
// System.out.println(i);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
//
// int a=sc.nextInt();
// int b=sc.nextInt();
// int sum = 0;
// for(int i=a;i<=b;i++) {
// if(i%3==0)
// sum+=i;
// }
// System.out.println(sum);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int sum=0;
// int n=sc.nextInt();
// for(int i=0;i<n;i++) {
// int a=sc.nextInt();
// if(a%5==0)
// sum+=a;
// }
// System.out.println(sum);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int n=sc.nextInt();
// int k=sc.nextInt();
// int ans=1;
// for(int i=0;i<k;i++)
// ans*=n;
// System.out.println(ans);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
//
// int n=sc.nextInt();
// int a=1;
// int num=1;
// while((n/a)>=10){
// a*=10;
// num++;
// }
// System.out.println(num);
// }
//}
//import java.util.*;
//class Main{
// public static void main(String[] args) {
//
// }
//}
int[] arr = new int[5];
int[][] arr = new int[10][10];