#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool digit[10][7]={
  {1,1,1,0,1,1,1},
  {0,0,1,0,0,1,0},
  {1,0,1,1,1,0,1},
  {1,0,1,1,0,1,1},
  {0,1,1,1,0,1,0},
  {1,1,0,1,0,1,1},
  {1,1,0,1,1,1,1},
  {1,0,1,0,0,1,0},
  {1,1,1,1,1,1,1},
  {1,1,1,1,0,1,1}
};
bool use[14][7];
ll n,k,a,b,cnt1[57],cnt2[43];
int D[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool check(int y){
  if(!(y%400)||((y%100)&&!(y%4)))return true;
  return false;
}

void Cnt1(int y,int m,int d){
  ll c=0,idx=3;
  for(int i=0;i<4;i++){
    for(int j=0;j<7;j++)
      if(digit[y%10][j]&&!use[idx][j])c++;
    y/=10;
    idx--;
  }
  idx=5;
  for(int i=0;i<2;i++){
    for(int j=0;j<7;j++)
      if(digit[m%10][j]&&!use[idx][j])c++;
    m/=10;
    idx--;
  }
  idx=7;
  for(int i=0;i<2;i++){
    for(int j=0;j<7;j++)
      if(digit[d%10][j]&&!use[idx][j])c++;
    d/=10;
    idx--;
  }
  cnt1[c]++;
}

void Cal(){
  int y=0,m=1,d=1;
  while(y<=9999){
    while(m<=12){
      while(d<=D[m]+(m==2&&check(y))){
	Cnt1(y,m,d);
	d++;
      }
      d=1;
      m++;
    }
    m=1;
    y++;
  }
}

void Cnt2(int h,int m,int s){
  ll c=0,idx=9;
  for(int i=0;i<2;i++){
    for(int j=0;j<7;j++)
      if(digit[h%10][j]&&!use[idx][j])c++;
    h/=10;
    idx--;
  }
  idx=11;
  for(int i=0;i<2;i++){
    for(int j=0;j<7;j++)
      if(digit[m%10][j]&&!use[idx][j])c++;
    m/=10;
    idx--;
  }
  idx=13;
  for(int i=0;i<2;i++){
    for(int j=0;j<7;j++)
      if(digit[s%10][j]&&!use[idx][j])c++;
    s/=10;
    idx--;
  }
  cnt2[c]++;
}

void Cal2(){
  int h=0,m=0,s=0;
  while(h<=23){
    while(m<=59){
      while(s<=59){
	Cnt2(h,m,s);
	s++;
      }
      s=0;
      m++;
    }
    m=0;
    h++;
  }
}

int main(){
  cin>>n>>k;
  for(int i=0;i<k;i++){
    cin>>a>>b;
    use[a][b]=1;
  }
  Cal();
  Cal2();
  ll ans=0;
  for(int i=0;i<=56;i++){
    for(int j=0;j<=42;j++)
      if(i+j==n)ans+=cnt1[i]*cnt2[j];
  }
  cout<<ans<<endl;
  return 0;
}