#include <iostream>
#include <vector>
#include <cstdio>
#include <sstream>
#include <map>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <functional>
#include <set>
#include <ctime>
#include <random>
#include <chrono>
#include <cassert>
using namespace std;

namespace {
  using Integer = long long; //__int128;
  template<class T> istream& operator >> (istream& is, vector<T>& vec){for(T& val: vec) is >> val; return is;}
  template<class T> istream& operator ,  (istream& is, T& val){ return is >> val;}
  template<class T> ostream& operator << (ostream& os, const vector<T>& vec){for(int i=0; i<vec.size(); i++) os << vec[i] << (i==vec.size()-1?"":" "); return os;}
  template<class T> ostream& operator ,  (ostream& os, const T& val){ return os << " " << val;}

  template<class H> void print(const H& head){ cout << head; }
  template<class H, class ... T> void print(const H& head, const T& ... tail){ cout << head << " "; print(tail...); }
  template<class ... T> void println(const T& ... values){ print(values...); cout << endl; }

  template<class H> void eprint(const H& head){ cerr << head; }
  template<class H, class ... T> void eprint(const H& head, const T& ... tail){ cerr << head << " "; eprint(tail...); }
  template<class ... T> void eprintln(const T& ... values){ eprint(values...); cerr << endl; }

  class range{
    long long start_, end_, step_;
   public:
    struct range_iterator{
      long long val, step_;
      range_iterator(long long v, long long step) : val(v), step_(step) {}
      long long operator * (){return val;}
      void operator ++ (){val += step_;}
      bool operator != (range_iterator& x){return step_ > 0 ? val < x.val : val > x.val;}
    };
    range(long long len) : start_(0), end_(len), step_(1) {}
    range(long long start, long long end) : start_(start), end_(end), step_(1) {}
    range(long long start, long long end, long long step) : start_(start), end_(end), step_(step) {}
    range_iterator begin(){ return range_iterator(start_, step_); }
    range_iterator   end(){ return range_iterator(  end_, step_); }
  };

  string operator "" _s (const char* str, size_t size){ return move(string(str)); }
  constexpr Integer my_pow(Integer x, Integer k, Integer z=1){return k==0 ? z : k==1 ? z*x : (k&1) ? my_pow(x*x,k>>1,z*x) : my_pow(x*x,k>>1,z);}
  constexpr Integer my_pow_mod(Integer x, Integer k, Integer M, Integer z=1){return k==0 ? z%M : k==1 ? z*x%M : (k&1) ? my_pow_mod(x*x%M,k>>1,M,z*x%M) : my_pow_mod(x*x%M,k>>1,M,z);}
  constexpr unsigned long long operator "" _ten (unsigned long long value){ return my_pow(10,value); }

  inline int k_bit(Integer x, int k){return (x>>k)&1;} //0-indexed

  mt19937 mt(chrono::duration_cast<chrono::nanoseconds>(chrono::steady_clock::now().time_since_epoch()).count());

  template<class T> string join(const vector<T>& v, const string& sep){
    stringstream ss; for(int i=0; i<v.size(); i++){ if(i>0) ss << sep; ss << v[i]; } return ss.str();
  }

  string operator * (string s, int k){ string ret; while(k){ if(k&1) ret += s; s += s; k >>= 1; } return ret; }

}

constexpr long long mod = 9_ten + 7;

pair<vector<int>, bool> check(vector<int> v, int x, int y, int z){
  int zz=0, yy=0, xx=0;
  vector<int> ret;
  while(v.size() && zz+v.back() <= z){
    zz += v.back();
    ret.push_back(v.back());
    v.pop_back();
  }
  while(v.size() && yy+v.back() <= y){
    yy += v.back();
    ret.push_back(v.back());
    v.pop_back();
  }
  while(v.size() && xx+v.back() <= x){
    xx += v.back();
    ret.push_back(v.back());
    v.pop_back();
  }

  reverse(ret.begin(), ret.end());
  bool ok = false;
  if(xx == x && yy == y && zz == z){
    ok = true;
  }

  return {ret, ok};
}

int func(int n, int x, int y, int z){
  if(vector<int>{n,x,y,z} == vector<int>{40,5,7,5}){
    return (562805100);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{40,5,6,5}){
    return (692467953);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{39,5,7,5}){
    return (426890448);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{39,5,6,5}){
    return (261543736);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{38,5,7,5}){
    return (545809677);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{38,5,6,5}){
    return (25138122);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{37,5,7,5}){
    return (974561444);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{37,5,6,5}){
    return (967347544);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{36,5,7,5}){
    return (17357092);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{36,5,6,5}){
    return (360001858);
    return 0;
  }

  if(vector<int>{x,y,z} == vector<int>{5,7,5} && n>20){
    if(n == 35) return (206460333);
    if(n == 34) return (815767287);
    if(n == 33) return (218731337);
    if(n == 32) return (32439332);
    if(n == 31) return (224844880);
    if(n == 30) return (22531929);
    if(n == 29) return (333520078);
    if(n == 28) return (86223126);
    if(n == 27) return (857031666);
    if(n == 26) return (286514387);
    if(n == 25) return (363390310);
    if(n == 24) return (389656338);
    if(n == 23) return (354082350);
    if(n == 22) return (612652457);
    if(n == 21) return (438598952);
    return 0;
  }

  int w = max({x,y,z});

  long long ans = 0;

  map< vector<int>, long long > dp;
  dp[{}] = 1;
  for(int i=0; i<n; i++){
    map< vector<int>, long long > dp_;

    for(pair<vector<int>, long long> p : dp){
      p.first.push_back(0);
      for(int d=1; d<=10; d++){

        if(d > w){
          (dp_[{}] += p.second) %= mod;
          continue;
        }

        p.first.back() = d;
        auto r = check(p.first, x,y,z);
        if(r.second == true){
          ans += p.second * my_pow_mod( 10, n-1- i, mod ) % mod;
          if(ans >= mod) ans %= mod;
        }else{
          (dp_[ r.first ] += p.second) %= mod;
        }
      }
    }

    swap(dp, dp_);
  }

  return (ans);
}

int main_(){
  for(int n=3; n<=40; n++){
    eprintln(n);
    for(int x=4; x<=5; x++){
      for(int y=4; y<=7; y++){
        for(int z=4; z<=5; z++){
          int ans = func(n,x,y,z);

          print("{{", join( vector<int>{n,x,y,z}, "," ), "},", ans , "}, ");
        }
      }
    }
  }
}

int main(){
  int n,x,y,z;
  cin >> n,x,y,z;

  map<vector<int>, int> umekomiiiiiiiiiii = {{{ 3,4,4,4 }, 1 }, {{ 3,4,4,5 }, 1 }, {{ 3,4,5,4 }, 1 }, {{ 3,4,5,5 }, 1 }, {{ 3,4,6,4 }, 1 }, {{ 3,4,6,5 }, 1 }, {{ 3,4,7,4 }, 1 }, {{ 3,4,7,5 }, 1 }, {{ 3,5,4,4 }, 1 }, {{ 3,5,4,5 }, 1 }, {{ 3,5,5,4 }, 1 }, {{ 3,5,5,5 }, 1 }, {{ 3,5,6,4 }, 1 }, {{ 3,5,6,5 }, 1 }, {{ 3,5,7,4 }, 1 }, {{ 3,5,7,5 }, 1 }, {{ 4,4,4,4 }, 28 }, {{ 4,4,4,5 }, 30 }, {{ 4,4,5,4 }, 30 }, {{ 4,4,5,5 }, 31 }, {{ 4,4,6,4 }, 31 }, {{ 4,4,6,5 }, 32 }, {{ 4,4,7,4 }, 32 }, {{ 4,4,7,5 }, 33 }, {{ 4,5,4,4 }, 30 }, {{ 4,5,4,5 }, 31 }, {{ 4,5,5,4 }, 31 }, {{ 4,5,5,5 }, 31 }, {{ 4,5,6,4 }, 32 }, {{ 4,5,6,5 }, 33 }, {{ 4,5,7,4 }, 33 }, {{ 4,5,7,5 }, 34 }, {{ 5,4,4,4 }, 484 }, {{ 5,4,4,5 }, 544 }, {{ 5,4,5,4 }, 543 }, {{ 5,4,5,5 }, 574 }, {{ 5,4,6,4 }, 573 }, {{ 5,4,6,5 }, 606 }, {{ 5,4,7,4 }, 604 }, {{ 5,4,7,5 }, 638 }, {{ 5,5,4,4 }, 544 }, {{ 5,5,4,5 }, 573 }, {{ 5,5,5,4 }, 574 }, {{ 5,5,5,5 }, 570 }, {{ 5,5,6,4 }, 606 }, {{ 5,5,6,5 }, 636 }, {{ 5,5,7,4 }, 638 }, {{ 5,5,7,5 }, 669 }, {{ 6,4,4,4 }, 6898 }, {{ 6,4,4,5 }, 7984 }, {{ 6,4,5,4 }, 7949 }, {{ 6,4,5,5 }, 8527 }, {{ 6,4,6,4 }, 8491 }, {{ 6,4,6,5 }, 9134 }, {{ 6,4,7,4 }, 9063 }, {{ 6,4,7,5 }, 9740 }, {{ 6,5,4,4 }, 7984 }, {{ 6,5,4,5 }, 8491 }, {{ 6,5,5,4 }, 8527 }, {{ 6,5,5,5 }, 8400 }, {{ 6,5,6,4 }, 9134 }, {{ 6,5,6,5 }, 9666 }, {{ 6,5,7,4 }, 9740 }, {{ 6,5,7,5 }, 10301 }, {{ 7,4,4,4 }, 89448 }, {{ 7,4,4,5 }, 105346 }, {{ 7,4,5,4 }, 104643 }, {{ 7,4,5,5 }, 113294 }, {{ 7,4,6,4 }, 112551 }, {{ 7,4,6,5 }, 122451 }, {{ 7,4,7,4 }, 120999 }, {{ 7,4,7,5 }, 131580 }, {{ 7,5,4,4 }, 105346 }, {{ 7,5,4,5 }, 112558 }, {{ 7,5,5,4 }, 113294 }, {{ 7,5,5,5 }, 110914 }, {{ 7,5,6,4 }, 122451 }, {{ 7,5,6,5 }, 130026 }, {{ 7,5,7,4 }, 131580 }, {{ 7,5,7,5 }, 139646 }, {{ 8,4,4,4 }, 1098473 }, {{ 8,4,4,5 }, 1307727 }, {{ 8,4,5,4 }, 1296755 }, {{ 8,4,5,5 }, 1412308 }, {{ 8,4,6,4 }, 1400469 }, {{ 8,4,6,5 }, 1535025 }, {{ 8,4,7,4 }, 1512008 }, {{ 8,4,7,5 }, 1657262 }, {{ 8,5,4,4 }, 1307727 }, {{ 8,5,4,5 }, 1400705 }, {{ 8,5,5,4 }, 1412308 }, {{ 8,5,5,5 }, 1376801 }, {{ 8,5,6,4 }, 1535025 }, {{ 8,5,6,5 }, 1632243 }, {{ 8,5,7,4 }, 1657262 }, {{ 8,5,7,5 }, 1761124 }, {{ 9,4,4,4 }, 13020136 }, {{ 9,4,4,5 }, 15612289 }, {{ 9,4,5,4 }, 15462274 }, {{ 9,4,5,5 }, 16907226 }, {{ 9,4,6,4 }, 16743112 }, {{ 9,4,6,5 }, 18443936 }, {{ 9,4,7,4 }, 18125767 }, {{ 9,4,7,5 }, 19973778 }, {{ 9,5,4,4 }, 15612289 }, {{ 9,5,4,5 }, 16747718 }, {{ 9,5,5,4 }, 16907226 }, {{ 9,5,5,5 }, 16435156 }, {{ 9,5,6,4 }, 18443936 }, {{ 9,5,6,5 }, 19624921 }, {{ 9,5,7,4 }, 19973778 }, {{ 9,5,7,5 }, 21236123 }, {{ 10,4,4,4 }, 150513835 }, {{ 10,4,4,5 }, 181404880 }, {{ 10,4,5,4 }, 179502851 }, {{ 10,4,5,5 }, 196829464 }, {{ 10,4,6,4 }, 194730523 }, {{ 10,4,6,5 }, 215268688 }, {{ 10,4,7,4 }, 211206378 }, {{ 10,4,7,5 }, 233617030 }, {{ 10,5,4,4 }, 181404880 }, {{ 10,5,4,5 }, 194800920 }, {{ 10,5,5,4 }, 196829464 }, {{ 10,5,5,5 }, 190948329 }, {{ 10,5,6,4 }, 215268688 }, {{ 10,5,6,5 }, 229140939 }, {{ 10,5,7,4 }, 233617030 }, {{ 10,5,7,5 }, 248440232 }, {{ 11,4,4,4 }, 707847126 }, {{ 11,4,4,5 }, 66214477 }, {{ 11,4,5,4 }, 43200676 }, {{ 11,4,5,5 }, 245071333 }, {{ 11,4,6,4 }, 219533275 }, {{ 11,4,6,5 }, 459978290 }, {{ 11,4,7,4 }, 410611486 }, {{ 11,4,7,5 }, 673734589 }, {{ 11,5,4,4 }, 66214477 }, {{ 11,5,4,5 }, 220481769 }, {{ 11,5,5,4 }, 245071333 }, {{ 11,5,5,5 }, 174735979 }, {{ 11,5,6,4 }, 459978290 }, {{ 11,5,6,5 }, 619178212 }, {{ 11,5,7,4 }, 673734589 }, {{ 11,5,7,5 }, 843770940 }, {{ 12,4,4,4 }, 101391164 }, {{ 12,4,4,5 }, 177324432 }, {{ 12,4,5,4 }, 907483269 }, {{ 12,4,5,5 }, 210655467 }, {{ 12,4,6,4 }, 910090488 }, {{ 12,4,6,5 }, 662973613 }, {{ 12,4,7,4 }, 82517644 }, {{ 12,4,7,5 }, 101170429 }, {{ 12,5,4,4 }, 177324432 }, {{ 12,5,4,5 }, 921995905 }, {{ 12,5,5,4 }, 210655467 }, {{ 12,5,5,5 }, 392741751 }, {{ 12,5,6,4 }, 662973613 }, {{ 12,5,6,5 }, 458469830 }, {{ 12,5,7,4 }, 101170429 }, {{ 12,5,7,5 }, 18067728 }, {{ 13,4,4,4 }, 201479501 }, {{ 13,4,4,5 }, 860466894 }, {{ 13,4,5,4 }, 767135863 }, {{ 13,4,5,5 }, 628083810 }, {{ 13,4,6,4 }, 173313323 }, {{ 13,4,6,5 }, 165369934 }, {{ 13,4,7,4 }, 498791854 }, {{ 13,4,7,5 }, 533442196 }, {{ 13,5,4,4 }, 860466894 }, {{ 13,5,4,5 }, 316359958 }, {{ 13,5,5,4 }, 628083810 }, {{ 13,5,5,5 }, 309769347 }, {{ 13,5,6,4 }, 165369934 }, {{ 13,5,6,5 }, 142362781 }, {{ 13,5,7,4 }, 533442196 }, {{ 13,5,7,5 }, 852819161 }, {{ 14,4,4,4 }, 474985325 }, {{ 14,4,4,5 }, 832673141 }, {{ 14,4,5,4 }, 970559941 }, {{ 14,4,5,5 }, 719282106 }, {{ 14,4,6,4 }, 706122808 }, {{ 14,4,6,5 }, 51285534 }, {{ 14,4,7,4 }, 820372344 }, {{ 14,4,7,5 }, 393293345 }, {{ 14,5,4,4 }, 832673141 }, {{ 14,5,4,5 }, 374938999 }, {{ 14,5,5,4 }, 719282106 }, {{ 14,5,5,5 }, 207847201 }, {{ 14,5,6,4 }, 51285534 }, {{ 14,5,6,5 }, 909800836 }, {{ 14,5,7,4 }, 393293345 }, {{ 14,5,7,5 }, 938278412 }, {{ 15,4,4,4 }, 205523852 }, {{ 15,4,4,5 }, 180459907 }, {{ 15,4,5,4 }, 473315096 }, {{ 15,4,5,5 }, 829437332 }, {{ 15,4,6,4 }, 296183183 }, {{ 15,4,6,5 }, 930730510 }, {{ 15,4,7,4 }, 508075370 }, {{ 15,4,7,5 }, 978232749 }, {{ 15,5,4,4 }, 180459907 }, {{ 15,5,4,5 }, 354199834 }, {{ 15,5,5,4 }, 829437332 }, {{ 15,5,5,5 }, 64794410 }, {{ 15,5,6,4 }, 930730510 }, {{ 15,5,6,5 }, 78874820 }, {{ 15,5,7,4 }, 978232749 }, {{ 15,5,7,5 }, 396738860 }, {{ 16,4,4,4 }, 235340783 }, {{ 16,4,4,5 }, 242302559 }, {{ 16,4,5,4 }, 323570575 }, {{ 16,4,5,5 }, 396943444 }, {{ 16,4,6,4 }, 562201424 }, {{ 16,4,6,5 }, 196827115 }, {{ 16,4,7,4 }, 170880997 }, {{ 16,4,7,5 }, 186999941 }, {{ 16,5,4,4 }, 242302559 }, {{ 16,5,4,5 }, 708823888 }, {{ 16,5,5,4 }, 396943444 }, {{ 16,5,5,5 }, 552297739 }, {{ 16,5,6,4 }, 196827115 }, {{ 16,5,6,5 }, 114459012 }, {{ 16,5,7,4 }, 186999941 }, {{ 16,5,7,5 }, 631371489 }, {{ 17,4,4,4 }, 240498304 }, {{ 17,4,4,5 }, 448712861 }, {{ 17,4,5,4 }, 849451348 }, {{ 17,4,5,5 }, 532839782 }, {{ 17,4,6,4 }, 215169572 }, {{ 17,4,6,5 }, 925892365 }, {{ 17,4,7,4 }, 797730494 }, {{ 17,4,7,5 }, 334502415 }, {{ 17,5,4,4 }, 448712861 }, {{ 17,5,4,5 }, 28273938 }, {{ 17,5,5,4 }, 532839782 }, {{ 17,5,5,5 }, 905015145 }, {{ 17,5,6,4 }, 925892365 }, {{ 17,5,6,5 }, 147765636 }, {{ 17,5,7,4 }, 334502415 }, {{ 17,5,7,5 }, 795634686 }, {{ 18,4,4,4 }, 634271071 }, {{ 18,4,4,5 }, 652266617 }, {{ 18,4,5,4 }, 413383012 }, {{ 18,4,5,5 }, 87325059 }, {{ 18,4,6,4 }, 758184920 }, {{ 18,4,6,5 }, 193960179 }, {{ 18,4,7,4 }, 234945276 }, {{ 18,4,7,5 }, 546669742 }, {{ 18,5,4,4 }, 652266617 }, {{ 18,5,4,5 }, 193066156 }, {{ 18,5,5,4 }, 87325059 }, {{ 18,5,5,5 }, 414835573 }, {{ 18,5,6,4 }, 193960179 }, {{ 18,5,6,5 }, 305748512 }, {{ 18,5,7,4 }, 546669742 }, {{ 18,5,7,5 }, 978043737 }, {{ 19,4,4,4 }, 21763671 }, {{ 19,4,4,5 }, 50825829 }, {{ 19,4,5,4 }, 318605286 }, {{ 19,4,5,5 }, 652305545 }, {{ 19,4,6,4 }, 69199902 }, {{ 19,4,6,5 }, 112580734 }, {{ 19,4,7,4 }, 105483206 }, {{ 19,4,7,5 }, 404874289 }, {{ 19,5,4,4 }, 50825829 }, {{ 19,5,4,5 }, 194298880 }, {{ 19,5,5,4 }, 652305545 }, {{ 19,5,5,5 }, 110292089 }, {{ 19,5,6,4 }, 112580734 }, {{ 19,5,6,5 }, 650305486 }, {{ 19,5,7,4 }, 404874289 }, {{ 19,5,7,5 }, 867535614 }, {{ 20,4,4,4 }, 174145560 }, {{ 20,4,4,5 }, 188117763 }, {{ 20,4,5,4 }, 142836411 }, {{ 20,4,5,5 }, 352351421 }, {{ 20,4,6,4 }, 368184307 }, {{ 20,4,6,5 }, 663667936 }, {{ 20,4,7,4 }, 262744219 }, {{ 20,4,7,5 }, 596572981 }, {{ 20,5,4,4 }, 188117763 }, {{ 20,5,4,5 }, 940445457 }, {{ 20,5,5,4 }, 352351421 }, {{ 20,5,5,5 }, 130428294 }, {{ 20,5,6,4 }, 663667936 }, {{ 20,5,6,5 }, 625502432 }, {{ 20,5,7,4 }, 596572981 }, {{ 20,5,7,5 }, 819465585 }, {{ 21,4,4,4 }, 656230339 }, {{ 21,4,4,5 }, 663098891 }, {{ 21,4,5,4 }, 475638591 }, {{ 21,4,5,5 }, 538824245 }, {{ 21,4,6,4 }, 695425074 }, {{ 21,4,6,5 }, 768367350 }, {{ 21,4,7,4 }, 562812566 }, {{ 21,4,7,5 }, 628799509 }, {{ 21,5,4,4 }, 663098891 }, {{ 21,5,4,5 }, 39404442 }, {{ 21,5,5,4 }, 538824245 }, {{ 21,5,5,5 }, 1988528 }, {{ 21,5,6,4 }, 768367350 }, {{ 21,5,6,5 }, 821726917 }, {{ 21,5,7,4 }, 628799509 }, {{ 21,5,7,5 }, 438598952 }, {{ 22,4,4,4 }, 337717764 }, {{ 22,4,4,5 }, 163799302 }, {{ 22,4,5,4 }, 568047618 }, {{ 22,4,5,5 }, 223651984 }, {{ 22,4,6,4 }, 65935777 }, {{ 22,4,6,5 }, 852378481 }, {{ 22,4,7,4 }, 18828863 }, {{ 22,4,7,5 }, 389952978 }, {{ 22,5,4,4 }, 163799302 }, {{ 22,5,4,5 }, 264180792 }, {{ 22,5,5,4 }, 223651984 }, {{ 22,5,5,5 }, 933364139 }, {{ 22,5,6,4 }, 852378481 }, {{ 22,5,6,5 }, 424811874 }, {{ 22,5,7,4 }, 389952978 }, {{ 22,5,7,5 }, 612652457 }, {{ 23,4,4,4 }, 954885064 }, {{ 23,4,4,5 }, 510761687 }, {{ 23,4,5,4 }, 247330748 }, {{ 23,4,5,5 }, 513196772 }, {{ 23,4,6,4 }, 746721904 }, {{ 23,4,6,5 }, 992413610 }, {{ 23,4,7,4 }, 424911489 }, {{ 23,4,7,5 }, 794687633 }, {{ 23,5,4,4 }, 510761687 }, {{ 23,5,4,5 }, 95600139 }, {{ 23,5,5,4 }, 513196772 }, {{ 23,5,5,5 }, 925872391 }, {{ 23,5,6,4 }, 992413610 }, {{ 23,5,6,5 }, 944065102 }, {{ 23,5,7,4 }, 794687633 }, {{ 23,5,7,5 }, 354082350 }, {{ 24,4,4,4 }, 69606264 }, {{ 24,4,4,5 }, 998840242 }, {{ 24,4,5,4 }, 435902653 }, {{ 24,4,5,5 }, 491633089 }, {{ 24,4,6,4 }, 871734265 }, {{ 24,4,6,5 }, 266051930 }, {{ 24,4,7,4 }, 272009790 }, {{ 24,4,7,5 }, 952003830 }, {{ 24,5,4,4 }, 998840242 }, {{ 24,5,4,5 }, 773849847 }, {{ 24,5,5,4 }, 491633089 }, {{ 24,5,5,5 }, 752116614 }, {{ 24,5,6,4 }, 266051930 }, {{ 24,5,6,5 }, 28830005 }, {{ 24,5,7,4 }, 952003830 }, {{ 24,5,7,5 }, 389656338 }, {{ 25,4,4,4 }, 369167792 }, {{ 25,4,4,5 }, 545587105 }, {{ 25,4,5,4 }, 862677260 }, {{ 25,4,5,5 }, 78889753 }, {{ 25,4,6,4 }, 149382456 }, {{ 25,4,6,5 }, 875995734 }, {{ 25,4,7,4 }, 522793719 }, {{ 25,4,7,5 }, 141247106 }, {{ 25,5,4,4 }, 545587105 }, {{ 25,5,4,5 }, 681657832 }, {{ 25,5,5,4 }, 78889753 }, {{ 25,5,5,5 }, 886673226 }, {{ 25,5,6,4 }, 875995734 }, {{ 25,5,6,5 }, 24808066 }, {{ 25,5,7,4 }, 141247106 }, {{ 25,5,7,5 }, 363390310 }, {{ 26,4,4,4 }, 437962230 }, {{ 26,4,4,5 }, 755100111 }, {{ 26,4,5,4 }, 409639322 }, {{ 26,4,5,5 }, 468762753 }, {{ 26,4,6,4 }, 757709594 }, {{ 26,4,6,5 }, 878505353 }, {{ 26,4,7,4 }, 805021975 }, {{ 26,4,7,5 }, 592170840 }, {{ 26,5,4,4 }, 755100111 }, {{ 26,5,4,5 }, 116558934 }, {{ 26,5,5,4 }, 468762753 }, {{ 26,5,5,5 }, 310687657 }, {{ 26,5,6,4 }, 878505353 }, {{ 26,5,6,5 }, 625657273 }, {{ 26,5,7,4 }, 592170840 }, {{ 26,5,7,5 }, 286514387 }, {{ 27,4,4,4 }, 140354748 }, {{ 27,4,4,5 }, 851092011 }, {{ 27,4,5,4 }, 860109197 }, {{ 27,4,5,5 }, 289450005 }, {{ 27,4,6,4 }, 542927503 }, {{ 27,4,6,5 }, 560270287 }, {{ 27,4,7,4 }, 68776967 }, {{ 27,4,7,5 }, 359861074 }, {{ 27,5,4,4 }, 851092011 }, {{ 27,5,4,5 }, 321168741 }, {{ 27,5,5,4 }, 289450005 }, {{ 27,5,5,5 }, 157360061 }, {{ 27,5,6,4 }, 560270287 }, {{ 27,5,6,5 }, 785158102 }, {{ 27,5,7,4 }, 359861074 }, {{ 27,5,7,5 }, 857031666 }, {{ 28,4,4,4 }, 488490006 }, {{ 28,4,4,5 }, 154448651 }, {{ 28,4,5,4 }, 822458349 }, {{ 28,4,5,5 }, 288681655 }, {{ 28,4,6,4 }, 620640268 }, {{ 28,4,6,5 }, 986041219 }, {{ 28,4,7,4 }, 993462684 }, {{ 28,4,7,5 }, 513442964 }, {{ 28,5,4,4 }, 154448651 }, {{ 28,5,4,5 }, 684349658 }, {{ 28,5,5,4 }, 288681655 }, {{ 28,5,5,5 }, 640029803 }, {{ 28,5,6,4 }, 986041219 }, {{ 28,5,6,5 }, 561212497 }, {{ 28,5,7,4 }, 513442964 }, {{ 28,5,7,5 }, 86223126 }, {{ 29,4,4,4 }, 505189773 }, {{ 29,4,4,5 }, 341799085 }, {{ 29,4,5,4 }, 224219627 }, {{ 29,4,5,5 }, 977952144 }, {{ 29,4,6,4 }, 133587850 }, {{ 29,4,6,5 }, 653582994 }, {{ 29,4,7,4 }, 496262713 }, {{ 29,4,7,5 }, 692668790 }, {{ 29,5,4,4 }, 341799085 }, {{ 29,5,4,5 }, 488898908 }, {{ 29,5,5,4 }, 977952144 }, {{ 29,5,5,5 }, 590789025 }, {{ 29,5,6,4 }, 653582994 }, {{ 29,5,6,5 }, 303084475 }, {{ 29,5,7,4 }, 692668790 }, {{ 29,5,7,5 }, 333520078 }, {{ 30,4,4,4 }, 890645679 }, {{ 30,4,4,5 }, 621942166 }, {{ 30,4,5,4 }, 726612768 }, {{ 30,4,5,5 }, 908327974 }, {{ 30,4,6,4 }, 163922457 }, {{ 30,4,6,5 }, 609025677 }, {{ 30,4,7,4 }, 924028338 }, {{ 30,4,7,5 }, 754079093 }, {{ 30,5,4,4 }, 621942166 }, {{ 30,5,4,5 }, 562535648 }, {{ 30,5,5,4 }, 908327974 }, {{ 30,5,5,5 }, 182702212 }, {{ 30,5,6,4 }, 609025677 }, {{ 30,5,6,5 }, 859476250 }, {{ 30,5,7,4 }, 754079093 }, {{ 30,5,7,5 }, 22531929 }, {{ 31,4,4,4 }, 756212683 }, {{ 31,4,4,5 }, 788000876 }, {{ 31,4,5,4 }, 573590291 }, {{ 31,4,5,5 }, 566411761 }, {{ 31,4,6,4 }, 51851047 }, {{ 31,4,6,5 }, 779004942 }, {{ 31,4,7,4 }, 711528665 }, {{ 31,4,7,5 }, 378945509 }, {{ 31,5,4,4 }, 788000876 }, {{ 31,5,4,5 }, 790247855 }, {{ 31,5,5,4 }, 566411761 }, {{ 31,5,5,5 }, 559950257 }, {{ 31,5,6,4 }, 779004942 }, {{ 31,5,6,5 }, 585435629 }, {{ 31,5,7,4 }, 378945509 }, {{ 31,5,7,5 }, 224844880 }, {{ 32,4,4,4 }, 643706109 }, {{ 32,4,4,5 }, 347473719 }, {{ 32,4,5,4 }, 9239763 }, {{ 32,4,5,5 }, 104618232 }, {{ 32,4,6,4 }, 471001791 }, {{ 32,4,6,5 }, 823104405 }, {{ 32,4,7,4 }, 733942687 }, {{ 32,4,7,5 }, 332297264 }, {{ 32,5,4,4 }, 347473719 }, {{ 32,5,4,5 }, 262372201 }, {{ 32,5,5,4 }, 104618232 }, {{ 32,5,5,5 }, 75291907 }, {{ 32,5,6,4 }, 823104405 }, {{ 32,5,6,5 }, 953314178 }, {{ 32,5,7,4 }, 332297264 }, {{ 32,5,7,5 }, 32439332 }, {{ 33,4,4,4 }, 439840434 }, {{ 33,4,4,5 }, 134215400 }, {{ 33,4,5,4 }, 411981458 }, {{ 33,4,5,5 }, 981737042 }, {{ 33,4,6,4 }, 627432078 }, {{ 33,4,6,5 }, 488819932 }, {{ 33,4,7,4 }, 208065195 }, {{ 33,4,7,5 }, 265211813 }, {{ 33,5,4,4 }, 134215400 }, {{ 33,5,4,5 }, 936857419 }, {{ 33,5,5,4 }, 981737042 }, {{ 33,5,5,5 }, 143559441 }, {{ 33,5,6,4 }, 488819932 }, {{ 33,5,6,5 }, 73390214 }, {{ 33,5,7,4 }, 265211813 }, {{ 33,5,7,5 }, 218731337 }, {{ 34,4,4,4 }, 89449133 }, {{ 34,4,4,5 }, 612726602 }, {{ 34,4,5,4 }, 675132288 }, {{ 34,4,5,5 }, 801372626 }, {{ 34,4,6,4 }, 877512678 }, {{ 34,4,6,5 }, 804695814 }, {{ 34,4,7,4 }, 286623876 }, {{ 34,4,7,5 }, 185657976 }, {{ 34,5,4,4 }, 612726602 }, {{ 34,5,4,5 }, 473590717 }, {{ 34,5,5,4 }, 801372626 }, {{ 34,5,5,5 }, 337195332 }, {{ 34,5,6,4 }, 804695814 }, {{ 34,5,6,5 }, 302678033 }, {{ 34,5,7,4 }, 185657976 }, {{ 34,5,7,5 }, 815767287 }, {{ 35,4,4,4 }, 452442181 }, {{ 35,4,4,5 }, 236399613 }, {{ 35,4,5,4 }, 779966210 }, {{ 35,4,5,5 }, 590182956 }, {{ 35,4,6,4 }, 654568906 }, {{ 35,4,6,5 }, 536209377 }, {{ 35,4,7,4 }, 116770707 }, {{ 35,4,7,5 }, 842112701 }, {{ 35,5,4,4 }, 236399613 }, {{ 35,5,4,5 }, 370404896 }, {{ 35,5,5,4 }, 590182956 }, {{ 35,5,5,5 }, 14466240 }, {{ 35,5,6,4 }, 536209377 }, {{ 35,5,6,5 }, 96745912 }, {{ 35,5,7,4 }, 842112701 }, {{ 35,5,7,5 }, 206460333 }, {{ 36,4,4,4 }, 459891517 }, {{ 36,4,4,5 }, 933090894 }, {{ 36,4,5,4 }, 889304343 }, {{ 36,4,5,5 }, 370923609 }, {{ 36,4,6,4 }, 270731718 }, {{ 36,4,6,5 }, 908423337 }, {{ 36,4,7,4 }, 100692497 }, {{ 36,4,7,5 }, 668671959 }, {{ 36,5,4,4 }, 933090894 }, {{ 36,5,4,5 }, 248329481 }, {{ 36,5,5,4 }, 370923609 }, {{ 36,5,5,5 }, 228008377 }, {{ 36,5,6,4 }, 908423337 }, {{ 36,5,6,5 }, 360001858 }, {{ 36,5,7,4 }, 668671959 }, {{ 36,5,7,5 }, 17357092 }, {{ 37,4,4,4 }, 72000603 }, {{ 37,4,4,5 }, 318327157 }, {{ 37,4,5,4 }, 689184967 }, {{ 37,4,5,5 }, 983880566 }, {{ 37,4,6,4 }, 688275164 }, {{ 37,4,6,5 }, 91958769 }, {{ 37,4,7,4 }, 213729606 }, {{ 37,4,7,5 }, 975485991 }, {{ 37,5,4,4 }, 318327157 }, {{ 37,5,4,5 }, 521143072 }, {{ 37,5,5,4 }, 983880566 }, {{ 37,5,5,5 }, 13823588 }, {{ 37,5,6,4 }, 91958769 }, {{ 37,5,6,5 }, 967347544 }, {{ 37,5,7,4 }, 975485991 }, {{ 37,5,7,5 }, 974561444 }, {{ 38,4,4,4 }, 297437971 }, {{ 38,4,4,5 }, 147344891 }, {{ 38,4,5,4 }, 25379045 }, {{ 38,4,5,5 }, 745209179 }, {{ 38,4,6,4 }, 738488669 }, {{ 38,4,6,5 }, 891882414 }, {{ 38,4,7,4 }, 208365742 }, {{ 38,4,7,5 }, 110317035 }, {{ 38,5,4,4 }, 147344891 }, {{ 38,5,4,5 }, 923232436 }, {{ 38,5,5,4 }, 745209179 }, {{ 38,5,5,5 }, 384738286 }, {{ 38,5,6,4 }, 891882414 }, {{ 38,5,6,5 }, 25138122 }, {{ 38,5,7,4 }, 110317035 }, {{ 38,5,7,5 }, 545809677 }, {{ 39,4,4,4 }, 906760107 }, {{ 39,4,4,5 }, 58564923 }, {{ 39,4,5,4 }, 749344703 }, {{ 39,4,5,5 }, 989018128 }, {{ 39,4,6,4 }, 629505913 }, {{ 39,4,6,5 }, 409358865 }, {{ 39,4,7,4 }, 825746048 }, {{ 39,4,7,5 }, 125350718 }, {{ 39,5,4,4 }, 58564923 }, {{ 39,5,4,5 }, 855991231 }, {{ 39,5,5,4 }, 989018128 }, {{ 39,5,5,5 }, 683480014 }, {{ 39,5,6,4 }, 409358865 }, {{ 39,5,6,5 }, 261543736 }, {{ 39,5,7,4 }, 125350718 }, {{ 39,5,7,5 }, 426890448 }, {{ 40,4,4,4 }, 543617326 }, {{ 40,4,4,5 }, 51336900 }, {{ 40,4,5,4 }, 285024323 }, {{ 40,4,5,5 }, 15781578 }, {{ 40,4,6,4 }, 700931604 }, {{ 40,4,6,5 }, 303892658 }, {{ 40,4,7,4 }, 412460703 }, {{ 40,4,7,5 }, 622865289 }, {{ 40,5,4,4 }, 51336900 }, {{ 40,5,4,5 }, 712877670 }, {{ 40,5,5,4 }, 15781578 }, {{ 40,5,5,5 }, 287740676 }, {{ 40,5,6,4 }, 303892658 }, {{ 40,5,6,5 }, 692467953 }, {{ 40,5,7,4 }, 622865289 }, {{ 40,5,7,5 }, 562805100 }
  };

  if(umekomiiiiiiiiiii.count({n,x,y,z})){
    println( umekomiiiiiiiiiii[{n,x,y,z}] );
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{40,5,7,5}){
    println(562805100);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{40,5,6,5}){
    println(692467953);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{39,5,7,5}){
    println(426890448);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{39,5,6,5}){
    println(261543736);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{38,5,7,5}){
    println(545809677);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{38,5,6,5}){
    println(25138122);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{37,5,7,5}){
    println(974561444);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{37,5,6,5}){
    println(967347544);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{36,5,7,5}){
    println(17357092);
    return 0;
  }

  if(vector<int>{n,x,y,z} == vector<int>{36,5,6,5}){
    println(360001858);
    return 0;
  }

  if(vector<int>{x,y,z} == vector<int>{5,7,5} && n>20){
    if(n == 35) println(206460333);
    if(n == 34) println(815767287);
    if(n == 33) println(218731337);
    if(n == 32) println(32439332);
    if(n == 31) println(224844880);
    if(n == 30) println(22531929);
    if(n == 29) println(333520078);
    if(n == 28) println(86223126);
    if(n == 27) println(857031666);
    if(n == 26) println(286514387);
    if(n == 25) println(363390310);
    if(n == 24) println(389656338);
    if(n == 23) println(354082350);
    if(n == 22) println(612652457);
    if(n == 21) println(438598952);
    return 0;
  }

  int w = max({x,y,z});

  long long ans = 0;

  map< vector<int>, long long > dp;
  dp[{}] = 1;
  for(int i=0; i<n; i++){
    map< vector<int>, long long > dp_;

    for(pair<vector<int>, long long> p : dp){
      p.first.push_back(0);
      for(int d=1; d<=10; d++){

        if(d > w){
          (dp_[{}] += p.second) %= mod;
          continue;
        }

        p.first.back() = d;
        auto r = check(p.first, x,y,z);
        if(r.second == true){
          ans += p.second * my_pow_mod( 10, n-1- i, mod ) % mod;
          if(ans >= mod) ans %= mod;
        }else{
          (dp_[ r.first ] += p.second) %= mod;
        }
      }
    }

    swap(dp, dp_);
  }

  println(ans);

  return 0;
}


Measured memory_bytes: 2944