Problem:
Score : 600 points

Problem Statement

Let us define the oddness of a permutation p = {p_1,\ p_2,\ ...,\ p_n} of {1,\ 2,\ ...,\ n} as \sum_{i = 1}^n |i - p_i|.

Find the number of permutations of {1,\ 2,\ ...,\ n} of oddness k, modulo 10^9+7.

Constraints

All values in input are integers.

1 \leq n \leq 50

0 \leq k \leq n^2

Input

Input is given from Standard Input in the following format:

n k

Output

Print the number of permutations of {1,\ 2,\ ...,\ n} of oddness k, modulo 10^9+7.

Sample Input 1

3 2

Sample Output 1

2

There are six permutations of {1,\ 2,\ 3}. Among them, two have oddness of 2: {2,\ 1,\ 3} and {1,\ 3,\ 2}.

Sample Input 2

39 14

Sample Output 2

74764168

Solution in Rust (1.15.1) (judge verdict: Accepted)

pub trait Readable {
    type Output;
    fn words_count() -> usize;
    fn read_words(words: &[&str]) -> Result<Self::Output, String>;
}
#[macro_export]
macro_rules! readable {
    ( $ t : ty , $ words_count : expr , |$ words : ident | $ read_words : expr ) => {
        impl Readable for $t {
            type Output = $t;
            fn words_count() -> usize {
                $words_count
            }
            fn read_words($words: &[&str]) -> Result<$t, String> {
                Ok($read_words)
            }
        }
    };
}
readable!((), 1, |_ss| ());
readable!(String, 1, |ss| ss[0].to_string());
impl Readable for char {
    type Output = char;
    fn words_count() -> usize {
        1
    }
    fn read_words(words: &[&str]) -> Result<char, String> {
        let chars: Vec<char> = words[0].chars().collect();
        if chars.len() == 1 {
            Ok(chars[0])
        } else {
            Err(format!("cannot parse `{}` as a char", words[0]))
        }
    }
}
pub struct Chars();
impl Readable for Chars {
    type Output = Vec<char>;
    fn words_count() -> usize {
        1
    }
    fn read_words(words: &[&str]) -> Result<Vec<char>, String> {
        Ok(words[0].chars().collect())
    }
}
macro_rules ! impl_readable_for_ints { ( $ ( $ t : ty ) * ) => { $ ( impl Readable for $ t { type Output = Self ; fn words_count ( ) -> usize { 1 } fn read_words ( words : & [ & str ] ) -> Result <$ t , String > { use std :: str :: FromStr ; <$ t >:: from_str ( words [ 0 ] ) . map_err ( | _ | { format ! ( "cannot parse `{}` as {}" , words [ 0 ] , stringify ! ( $ t ) ) } ) } } ) * } ; }
impl_readable_for_ints ! ( i8 u8 i16 u16 i32 u32 i64 u64 isize usize f32 f64 ) ;
macro_rules ! define_one_origin_int_types { ( $ new_t : ident $ int_t : ty ) => { # [ doc = " Converts 1-origin integer into 0-origin when read from stdin." ] # [ doc = "" ] # [ doc = " # Example" ] # [ doc = "" ] # [ doc = " ```no_run" ] # [ doc = " # #[macro_use] extern crate atcoder_snippets;" ] # [ doc = " # use atcoder_snippets::read::*;" ] # [ doc = " // Stdin: \"1\"" ] # [ doc = " read!(a = usize_);" ] # [ doc = " assert_eq!(a, 0);" ] # [ doc = " ```" ] # [ allow ( non_camel_case_types ) ] pub struct $ new_t ; impl Readable for $ new_t { type Output = $ int_t ; fn words_count ( ) -> usize { 1 } fn read_words ( words : & [ & str ] ) -> Result < Self :: Output , String > { <$ int_t >:: read_words ( words ) . map ( | n | n - 1 ) } } } ; ( $ new_t : ident $ int_t : ty ; $ ( $ inner_new_t : ident $ inner_int_t : ty ) ;* ) => { define_one_origin_int_types ! ( $ new_t $ int_t ) ; define_one_origin_int_types ! ( $ ( $ inner_new_t $ inner_int_t ) ;* ) ; } ; }
define_one_origin_int_types ! ( u8_ u8 ; u16_ u16 ; u32_ u32 ; u64_ u64 ; usize_ usize ) ;
macro_rules ! impl_readable_for_tuples { ( $ t : ident $ var : ident ) => ( ) ; ( $ t : ident $ var : ident ; $ ( $ inner_t : ident $ inner_var : ident ) ;* ) => { impl_readable_for_tuples ! ( $ ( $ inner_t $ inner_var ) ;* ) ; impl <$ t : Readable , $ ( $ inner_t : Readable ) ,*> Readable for ( $ t , $ ( $ inner_t ) ,* ) { type Output = ( <$ t >:: Output , $ ( <$ inner_t >:: Output ) ,* ) ; fn words_count ( ) -> usize { let mut n = <$ t >:: words_count ( ) ; $ ( n += <$ inner_t >:: words_count ( ) ; ) * n } # [ allow ( unused_assignments ) ] fn read_words ( words : & [ & str ] ) -> Result < Self :: Output , String > { let mut start = 0 ; let $ var = <$ t >:: read_words ( & words [ start .. start +<$ t >:: words_count ( ) ] ) ?; start += <$ t >:: words_count ( ) ; $ ( let $ inner_var = <$ inner_t >:: read_words ( & words [ start .. start +<$ inner_t >:: words_count ( ) ] ) ?; start += <$ inner_t >:: words_count ( ) ; ) * Ok ( ( $ var , $ ( $ inner_var ) ,* ) ) } } } ; }
impl_readable_for_tuples ! ( T8 x8 ; T7 x7 ; T6 x6 ; T5 x5 ; T4 x4 ; T3 x3 ; T2 x2 ; T1 x1 ) ;
pub trait ReadableFromLine {
    type Output;
    fn read_line(line: &str) -> Result<Self::Output, String>;
}
fn split_into_words(line: &str) -> Vec<&str> {
    #[allow(deprecated)]
    line.trim_right_matches('\n').split_whitespace().collect()
}
impl<T: Readable> ReadableFromLine for T {
    type Output = T::Output;
    fn read_line(line: &str) -> Result<T::Output, String> {
        let words = split_into_words(line);
        if words.len() != T::words_count() {
            return Err(format!(
                "line `{}` has {} words, expected {}",
                line,
                words.len(),
                T::words_count()
            ));
        }
        T::read_words(&words)
    }
}
macro_rules ! impl_readable_from_line_for_tuples_with_from_iterator { ( $ u : ident : $ ( + $ bound : path ) * => $ seq_in : ty , $ seq_out : ty ; $ t : ident $ var : ident ) => { impl <$ u : Readable > ReadableFromLine for $ seq_in where <$ u as Readable >:: Output : Sized $ ( + $ bound ) * { type Output = $ seq_out ; fn read_line ( line : & str ) -> Result <$ seq_out , String > { let n = $ u :: words_count ( ) ; let words = split_into_words ( line ) ; if words . len ( ) % n != 0 { return Err ( format ! ( "line `{}` has {} words, expected multiple of {}" , line , words . len ( ) , n ) ) ; } let mut result = Vec :: new ( ) ; for chunk in words . chunks ( n ) { match $ u :: read_words ( chunk ) { Ok ( v ) => result . push ( v ) , Err ( msg ) => { let flagment_msg = if n == 1 { format ! ( "word {}" , result . len ( ) ) } else { let l = result . len ( ) ; format ! ( "words {}-{}" , n * l + 1 , ( n + 1 ) * l ) } ; return Err ( format ! ( "{} of line `{}`: {}" , flagment_msg , line , msg ) ) ; } } } Ok ( result . into_iter ( ) . collect ( ) ) } } impl < T : Readable , $ u : Readable > ReadableFromLine for ( T , $ seq_in ) where <$ u as Readable >:: Output : Sized $ ( + $ bound ) * { type Output = ( T :: Output , $ seq_out ) ; fn read_line ( line : & str ) -> Result < Self :: Output , String > { let n = T :: words_count ( ) ; # [ allow ( deprecated ) ] let trimmed = line . trim_right_matches ( '\n' ) ; let words_and_rest : Vec <& str > = trimmed . splitn ( n + 1 , ' ' ) . collect ( ) ; if words_and_rest . len ( ) < n { return Err ( format ! ( "line `{}` has {} words, expected at least {}" , line , words_and_rest . len ( ) , n ) ) ; } let words = & words_and_rest [ .. n ] ; let empty_str = "" ; let rest = words_and_rest . get ( n ) . unwrap_or ( & empty_str ) ; Ok ( ( T :: read_words ( words ) ?, <$ seq_in >:: read_line ( rest ) ? ) ) } } } ; ( $ u : ident : $ ( + $ bound : path ) * => $ seq_in : ty , $ seq_out : ty ; $ t : ident $ var : ident , $ ( $ inner_t : ident $ inner_var : ident ) ,+ ) => { impl_readable_from_line_for_tuples_with_from_iterator ! ( $ u : $ ( + $ bound ) * => $ seq_in , $ seq_out ; $ ( $ inner_t $ inner_var ) ,+ ) ; impl <$ t : Readable , $ ( $ inner_t : Readable ) ,+ , $ u : Readable > ReadableFromLine for ( $ t , $ ( $ inner_t ) ,+ , $ seq_in ) where <$ u as Readable >:: Output : Sized $ ( + $ bound ) * { type Output = ( $ t :: Output , $ ( $ inner_t :: Output ) ,+ , $ seq_out ) ; fn read_line ( line : & str ) -> Result < Self :: Output , String > { let mut n = $ t :: words_count ( ) ; $ ( n += $ inner_t :: words_count ( ) ; ) + # [ allow ( deprecated ) ] let trimmed = line . trim_right_matches ( '\n' ) ; let words_and_rest : Vec <& str > = trimmed . splitn ( n + 1 , ' ' ) . collect ( ) ; if words_and_rest . len ( ) < n { return Err ( format ! ( "line `{}` has {} words, expected at least {}" , line , words_and_rest . len ( ) , n ) ) ; } let words = & words_and_rest [ .. n ] ; let empty_str = "" ; let rest = words_and_rest . get ( n ) . unwrap_or ( & empty_str ) ; let ( $ var , $ ( $ inner_var ) ,* ) = < ( $ t , $ ( $ inner_t ) ,+ ) >:: read_words ( words ) ?; Ok ( ( $ var , $ ( $ inner_var ) ,* , <$ seq_in >:: read_line ( rest ) ? ) ) } } } ; }
#[macro_export]
macro_rules ! readable_collection { ( $ u : ident => $ collection_in : ty , $ collection_out : ty ) => { impl_readable_from_line_for_tuples_with_from_iterator ! ( $ u : => $ collection_in , $ collection_out ; T8 x8 , T7 x7 , T6 x6 , T5 x5 , T4 t4 , T3 t3 , T2 t2 , T1 t1 ) ; } ; ( $ u : ident : $ ( $ bound : path ) ,* => $ collection_in : ty , $ collection_out : ty ) => { impl_readable_from_line_for_tuples_with_from_iterator ! ( $ u : $ ( + $ bound ) * => $ collection_in , $ collection_out ; T8 x8 , T7 x7 , T6 x6 , T5 x5 , T4 t4 , T3 t3 , T2 t2 , T1 t1 ) ; } }
readable_collection ! ( U => Vec < U >, Vec < U :: Output > ) ;
readable_collection ! ( U : Eq , std :: hash :: Hash => std :: collections :: HashSet < U >, std :: collections :: HashSet < U :: Output > ) ;
pub fn read<T: ReadableFromLine>() -> T::Output {
    let mut line = String::new();
    std::io::stdin().read_line(&mut line).unwrap();
    T::read_line(&line).unwrap()
}
#[macro_export]
macro_rules ! read { ( ) => { let mut line = String :: new ( ) ; std :: io :: stdin ( ) . read_line ( & mut line ) . unwrap ( ) ; } ; ( $ pat : pat = $ t : ty ) => { let $ pat = read ::<$ t > ( ) ; } ; ( $ ( $ pat : pat = $ t : ty ) ,+ ) => { read ! ( ( $ ( $ pat ) ,* ) = ( $ ( $ t ) ,* ) ) ; } ; }
#[macro_export]
macro_rules ! readls { ( $ ( $ pat : pat = $ t : ty ) ,+ ) => { $ ( read ! ( $ pat = $ t ) ; ) * } ; }
pub fn readx<T: ReadableFromLine>() -> Vec<T::Output> {
    use std::io::{self, BufRead};
    let stdin = io::stdin();
    let result = stdin
        .lock()
        .lines()
        .map(|line_result| {
            let line = line_result.expect("read from stdin failed");
            T::read_line(&line).unwrap()
        })
        .collect();
    result
}
#[macro_export]
macro_rules ! readx_loop { ( |$ pat : pat = $ t : ty | $ body : expr ) => { use std :: io :: BufRead ; let stdin = std :: io :: stdin ( ) ; for line in stdin . lock ( ) . lines ( ) { let line = line . expect ( "read from stdin failed" ) ; let $ pat = <$ t >:: read_line ( & line ) . unwrap ( ) ; $ body } } ; ( |$ ( $ pat : pat = $ t : ty ) ,*| $ body : expr ) => { readx_loop ! ( | ( $ ( $ pat ) ,* ) = ( $ ( $ t ) ,* ) | $ body ) ; } ; }
pub fn readn<T: ReadableFromLine>(n: usize) -> Vec<T::Output> {
    use std::io::{self, BufRead};
    let stdin = io::stdin();
    let result: Vec<T::Output> = stdin
        .lock()
        .lines()
        .take(n)
        .map(|line_result| {
            let line = line_result.expect("read from stdin failed");
            T::read_line(&line).unwrap()
        })
        .collect();
    if result.len() < n {
        panic!(
            "expected reading {} lines, but only {} lines are read",
            n,
            result.len()
        );
    }
    result
}
#[macro_export]
macro_rules ! readn_loop { ( $ n : expr , |$ pat : pat = $ t : ty | $ body : expr ) => { use std :: io :: BufRead ; let stdin = std :: io :: stdin ( ) ; { let mut lock = stdin . lock ( ) ; for _ in 0 ..$ n { let mut line = String :: new ( ) ; lock . read_line ( & mut line ) . expect ( "read from stdin failed" ) ; let $ pat = <$ t >:: read_line ( & line ) . unwrap ( ) ; $ body } } } ; ( $ n : expr , |$ ( $ pat : pat = $ t : ty ) ,*| $ body : expr ) => { readn_loop ! ( $ n , | ( $ ( $ pat ) ,* ) = ( $ ( $ t ) ,* ) | $ body ) ; } ; }
pub trait Words {
    fn read<T: Readable>(&self) -> T::Output;
}
impl<'a> Words for [&'a str] {
    fn read<T: Readable>(&self) -> T::Output {
        T::read_words(self).unwrap()
    }
}
impl<'a> Words for &'a str {
    fn read<T: Readable>(&self) -> T::Output {
        T::read_words(&[self]).unwrap()
    }
}

fn main() {
    let ans = vec![
        vec![1],
        vec![1, 1],
        vec![1, 2, 3],
        vec![1, 3, 7, 9, 4],
        vec![1, 4, 12, 24, 35, 24, 20],
        vec![1, 5, 18, 46, 93, 137, 148, 136, 100, 36],
        vec![1, 6, 25, 76, 187, 366, 591, 744, 884, 832, 716, 360, 252],
        vec![1, 7, 33, 115, 327, 765, 1523, 2553, 3696, 4852, 5708, 5892, 5452, 4212, 2844, 1764, 576],
        vec![1, 8, 42, 164, 524, 1400, 3226, 6436, 11323, 17640, 25472, 33280, 40520, 44240, 45512, 40608, 35496, 25632, 18108, 8064, 5184],
        vec![1, 9, 52, 224, 790, 2350, 6072, 13768, 27821, 50461, 83420, 127840, 182256, 242272, 301648, 350864, 382576, 389232, 373536, 332640, 273060, 208548, 136512, 81792, 46656, 14400],
        vec![1, 10, 63, 296, 1138, 3708, 10538, 26480, 59673, 121626, 226787, 390144, 628744, 949472, 1355952, 1826464, 2341600, 2833632, 3282464, 3584160, 3765600, 3719664, 3531924, 3093336, 2642364, 2010240, 1508544, 963072, 621504, 259200, 158400],
        vec![1, 11, 75, 381, 1582, 5582, 17222, 47194, 116457, 261163, 537459, 1022981, 1817652, 3040352, 4810720, 7230928, 10360160, 14178912, 18577792, 23327872, 28132048, 32571504, 36310464, 38903904, 40028724, 39552156, 37457388, 33941412, 29314944, 24179904, 18835776, 13777344, 9452736, 5716800, 3211200, 1742400, 518400],
        vec![1, 12, 88, 480, 2137, 8096, 26860, 79376, 211811, 515308, 1153268, 2391936, 4633331, 8438664, 14557048, 23874176, 37407760, 56117824, 80906752, 112162240, 150052400, 193572736, 241706624, 291576384, 341323776, 386160048, 424359540, 450394992, 464545584, 461528208, 446428476, 413557632, 373573440, 321120000, 268449408, 210332160, 162330624, 112550400, 77788800, 46540800, 28497600, 11404800, 6739200],
        vec![1, 13, 102, 594, 2819, 11391, 40344, 127508, 364587, 952559, 2293742, 5126898, 10710633, 21042989, 39117852, 69175664, 116857024, 189256368, 294745440, 442503456, 641759376, 900689616, 225195321, 617201401, 74227554, 586823330, 140227131, 711888699, 274217080, 795069832, 242715461, 585116357, 796764497, 861974465, 769155485, 525176285, 146566301, 650715556, 73773796, 455145195, 828946802, 226153586, 685663993, 216281593, 828705600, 536385600, 309484800, 166924800, 87609600, 25401600],
        vec![1, 14, 117, 724, 3645, 15626, 58741, 197280, 600215, 1671266, 4295107, 10259436, 22922995, 48184950, 95816051, 181136304, 327071752, 566117888, 942525072, 513281017, 349163810, 532145419, 154557773, 309226767, 88509354, 563257605, 789064441, 766807654, 474675580, 795689314, 599134613, 627066840, 658988947, 307608398, 337632800, 295701193, 44870369, 150212311, 705302359, 336038622, 452522163, 797367958, 62674553, 57993322, 777736994, 845298906, 452367755, 90655804, 810196653, 976943895, 564798323, 582118351, 994783972, 869862386, 697759993, 660441600, 381024000],
        vec![1, 15, 133, 871, 4633, 20979, 83313, 295803, 952299, 2809009, 7656027, 19414457, 46086247, 102967901, 217634463, 437195525, 838372452, 540635289, 722168530, 638311860, 640827391, 196046908, 898688562, 478199884, 793020369, 808862771, 562236075, 94791602, 385333320, 237794527, 197694759, 398043392, 504456766, 579736664, 78137089, 793367253, 961295251, 280517488, 179779783, 947563092, 901772777, 859566930, 199212409, 920781370, 362900807, 735004334, 297264154, 482748036, 653703312, 140400674, 623159781, 320434095, 373194802, 13313867, 205909676, 360223815, 570584277, 68075848, 372652149, 961247580, 23084534, 261139053, 151302323, 715359965, 625702393],
        vec![1, 16, 150, 1036, 5802, 27648, 115538, 431844, 1464468, 4554040, 13096378, 35069940, 87969166, 207781760, 464351910, 986188668, 998611836, 879505923, 237509223, 15110629, 621334822, 88677622, 257578542, 963016850, 235638961, 442107823, 429101453, 483004748, 329733855, 718448185, 266304376, 413950543, 256286771, 626720357, 318467482, 59069608, 81901162, 352730851, 104241055, 503595237, 956355036, 534522134, 457799859, 108929893, 887297322, 424614770, 265024591, 876853471, 515703045, 692038809, 210906163, 20070317, 468291405, 145357835, 797577421, 232358134, 747771239, 343859985, 833879609, 78548665, 289896769, 449285934, 313197004, 379603290, 397630660, 609910102, 442642726, 627950853, 722186028, 705163253, 998661511, 771071664, 636940611],
        vec![1, 17, 168, 1220, 7172, 35852, 157132, 616084, 2192506, 7159090, 21631676, 60902460, 160707468, 399489140, 939796228, 101060910, 481320121, 151453550, 952463061, 931694473, 957528293, 554162053, 990142499, 644946993, 651797781, 791594351, 556120466, 271969917, 107619398, 710253075, 280526462, 615698879, 99748930, 775178221, 257586036, 645364809, 806795120, 340635512, 801741075, 790520661, 68328385, 331513794, 351728404, 931812262, 91105169, 176869824, 445724501, 370449983, 359815736, 918724628, 869062973, 659791249, 657727222, 395793733, 32692523, 78858425, 151369211, 628504487, 842750087, 152091477, 889718876, 908002421, 944598446, 656459208, 712920845, 47550280, 92244967, 110652620, 951703750, 217822851, 901098263, 655149074, 861896271, 859184013, 992613245, 768042116, 807916959, 335381553, 909568095, 153171069, 827990317, 681893483],
        vec![1, 18, 187, 1424, 8764, 45832, 210072, 861400, 3206786, 10957868, 34666130, 102239488, 282743580, 736889224, 817936097, 262532028, 534038590, 412279142, 965109380, 86702267, 846482566, 945052509, 644517943, 548776024, 679330947, 152291502, 882910517, 188127435, 636778925, 902059202, 132531208, 193904122, 893705022, 246193070, 652079051, 958060250, 148697872, 504141990, 371410212, 807466717, 514477363, 565424570, 560794838, 11419155, 215137208, 665710713, 791504234, 359367396, 224050172, 509091270, 125989128, 782600310, 957126038, 667219607, 386301613, 605448653, 296557741, 618019404, 194294675, 222923480, 765962783, 743934970, 24324611, 512643153, 214242880, 286900578, 228877964, 91240846, 430467141, 533029377, 904804693, 373207899, 916503101, 83598539, 560288494, 363356684, 68282446, 152683809, 284461190, 124425011, 167972327, 428909487, 373215034, 420008537, 513304383, 874743039, 487193257, 97337408, 532639641, 184378261, 955976093],
        vec![1, 19, 207, 1649, 10600, 57852, 276620, 1183172, 4595034, 16384606, 54107670, 166643130, 481442164, 311240781, 381378831, 288429444, 380463632, 370477330, 171662912, 688513797, 626045604, 789881798, 844990830, 70546834, 230422087, 267733218, 970080423, 75064762, 104073936, 888990608, 393490487, 819401315, 362017415, 197941501, 97730360, 491049732, 790022455, 142301163, 381999002, 81566974, 255547256, 500580164, 503785886, 874661360, 953064009, 357278689, 416715628, 656421867, 311332859, 849655408, 575613107, 850236831, 533549113, 255339339, 611845477, 501164398, 135987981, 672393680, 678611757, 552403430, 470027818, 333312311, 203812034, 929380798, 133842121, 497262544, 839881753, 29703780, 133717366, 249364505, 959337844, 632980495, 72879056, 356819838, 662140760, 182352973, 260787823, 329159184, 423643610, 488600943, 164109163, 8143787, 184454683, 684285006, 693158498, 382122550, 488552031, 777204359, 564238497, 598675373, 603916585, 720234840, 93182262, 238936257, 486420235, 352604922, 958291193, 880928218, 736558676, 163545641, 189347824],
        vec![1, 20, 228, 1896, 12703, 72200, 359348, 1599616, 6465450, 23997032, 82508708, 264654080, 796563486, 260832418, 76986106, 528774007, 854313906, 307546108, 722735109, 61004626, 805619536, 18191861, 511411798, 993782454, 401030744, 633897378, 70862649, 96855526, 314416445, 92910833, 135520920, 492052755, 24334887, 643976444, 574388511, 317610455, 122930943, 637889505, 255461238, 950861369, 48876234, 149504663, 198682481, 942670278, 866921314, 563621302, 960474580, 980132644, 624295523, 399490883, 351714973, 945626033, 827908349, 157456205, 481861323, 472454109, 343580291, 683697065, 95059407, 841332348, 464714941, 596887160, 38681949, 757883329, 590303711, 64921694, 730086270, 15240461, 714742087, 32874447, 175996750, 277466516, 788882909, 11880203, 95097385, 778398376, 531252352, 479554466, 557013590, 609738833, 798714176, 859324339, 721484640, 268442938, 861267595, 806087188, 31691029, 950412807, 580575404, 849451646, 691790951, 264837637, 967322620, 365040170, 622467624, 456436788, 658680316, 60575186, 387550026, 215002020, 31349904, 449373833, 559514745, 640364153, 807042078, 450172023, 562637973, 109112418, 545193132, 195217263, 976304283],
        vec![1, 21, 250, 2166, 15097, 89189, 461164, 2132144, 8950214, 34503182, 123236828, 410729140, 284813823, 790835929, 594736274, 153822108, 374418504, 157537842, 147846917, 133568389, 483576696, 508616649, 656867821, 84463125, 640047601, 955370715, 182167616, 49108700, 229345632, 795610484, 502493987, 857101031, 142485158, 996679960, 742503997, 723858587, 317526153, 365342533, 250775491, 442738912, 408346120, 881242865, 135363327, 231979623, 347291745, 824934645, 995772018, 164592917, 354883487, 450805745, 963969802, 171006181, 92161176, 169883419, 961669090, 26844445, 393784092, 571606470, 464707158, 34144520, 652396373, 745405475, 202923498, 135935314, 703695236, 776259115, 48310283, 874186699, 219390686, 510394758, 751965065, 418424556, 8781061, 736058807, 674014147, 674780706, 590530540, 4352977, 803825827, 167292329, 541083402, 260679638, 665083995, 939990721, 816665296, 886017767, 669822229, 694816125, 643235536, 937314556, 115942268, 261159535, 687177905, 12245758, 694615643, 977706180, 217949106, 118952653, 898868241, 856650616, 42954342, 330321980, 535121720, 982503521, 719423135, 714354007, 18745970, 333448882, 302037622, 935654015, 778423936, 317991952, 284756555, 504736970, 155871365, 118263505, 797065125, 640838446, 258037348, 34344762, 502389803, 911086550],
        vec![1, 22, 273, 2460, 17807, 109158, 585339, 2805752, 12209406, 48792492, 180680070, 624410736, 25734764, 199973794, 977710523, 571365953, 412869707, 328237414, 214863466, 633048751, 257394955, 317735309, 673309005, 193600985, 704135816, 514918834, 650479735, 33606857, 490034801, 698396427, 67986999, 220797055, 218864611, 931163713, 940790978, 675674698, 85542051, 543018292, 61247584, 910803604, 831296179, 923943160, 89478028, 104500393, 161998091, 254912705, 539249258, 547749719, 357852173, 690014841, 206926249, 893887199, 747112232, 382059625, 148865046, 301618706, 260333115, 442306036, 247371284, 782005651, 233300621, 920894203, 317455792, 678639547, 427050277, 482884001, 854060466, 980543322, 860769666, 701293636, 771136168, 670745480, 486701027, 168461356, 848787800, 289825171, 498776317, 33320170, 430165721, 821516580, 115533370, 398776967, 333310602, 563097053, 553134182, 219816464, 216637272, 206027601, 933677337, 925510467, 267639197, 43693887, 486722546, 270929495, 877730912, 261947307, 375318068, 692508932, 989184491, 226696206, 288508969, 739837562, 849035543, 782296408, 273955665, 801085382, 431898190, 935043965, 202752072, 867866169, 151133676, 67940990, 78118516, 742654574, 165553271, 254022475, 668960857, 929973305, 656759571, 877339826, 925206924, 133648890, 623964326, 796176354, 256442424, 844384225, 955053908, 35821657, 33969824, 328610099, 171474448, 265634834, 954990510],
        vec![1, 23, 297, 2779, 20859, 132473, 735535, 3649437, 16435370, 67971642, 260491974, 931772466, 129241853, 915880695, 773220207, 21124907, 663657824, 89235883, 562087424, 395633225, 79602143, 818737728, 503346111, 923762587, 810187543, 71950684, 872552891, 722894374, 788701216, 792043650, 839896539, 577542972, 345484502, 350106805, 159630680, 594479078, 806985602, 451202244, 562057157, 345406448, 404888318, 371479292, 122121086, 196184273, 855722413, 625056343, 209132008, 580725504, 234791519, 683270249, 879431955, 820639155, 890517789, 877206124, 780147370, 943542736, 532169988, 134361777, 389279830, 486085405, 212150153, 60309713, 36144061, 220641769, 167907687, 433032241, 672669299, 4840381, 543970499, 860603358, 920463673, 899153827, 269139419, 99866794, 833550296, 732963165, 649634036, 220976898, 948879986, 81746947, 249278044, 943429751, 227240067, 617290217, 857759442, 317672542, 702411387, 392102340, 598392406, 771484657, 20769431, 772211314, 777981688, 103043307, 336611982, 922346108, 46010568, 620920750, 740298345, 143296430, 127113300, 229361025, 452883985, 298773134, 583669967, 430943791, 878469881, 498554889, 377075156, 399618101, 518539100, 610655946, 762624102, 339746521, 193491143, 582788075, 58498274, 139175929, 439487543, 659039143, 969039085, 205473123, 149794944, 735361805, 144310487, 952281582, 885994682, 290034640, 449859219, 870975475, 717604104, 930837761, 466542500, 510501275, 368063612, 61813298, 959329905, 938922014, 660077190, 12025968, 335011033, 657136343, 351072920, 964781583, 196462283],
        vec![1, 24, 322, 3124, 24280, 159528, 915834, 4696644, 21857553, 93405656, 369882084, 367190881, 745178532, 541448535, 237690972, 408537702, 191376116, 678513161, 493570976, 397907192, 9101765, 658714208, 122356973, 514532531, 911169029, 6916896, 782796, 910119724, 942560918, 62371227, 773940129, 523667340, 669757203, 42568262, 891666384, 467022993, 486796667, 727294526, 413613585, 787453753, 599953158, 417187968, 359849625, 117069116, 879478181, 12380000, 910899870, 838986319, 102687453, 103327364, 376800830, 429223538, 780159138, 706916356, 587575355, 971169352, 36010810, 483798044, 344462034, 787276711, 359714668, 737585540, 514856433, 506547585, 7966248, 935961, 931790046, 725219981, 437246235, 737823353, 539625329, 101294921, 998345360, 158678756, 14552916, 434899855, 58679632, 771567929, 908041362, 370603042, 958461645, 473954165, 329932246, 645017860, 950250115, 632956030, 39737256, 308287817, 593859369, 848980890, 73354610, 67983312, 794665532, 744501399, 571146358, 79777328, 768540650, 301591668, 87146707, 749547055, 542914952, 113807115, 981646049, 443442346, 689844336, 226785366, 664441023, 644644459, 65534356, 186334852, 433121661, 818953887, 687026114, 344822747, 464015963, 110899493, 294091084, 65199948, 37449794, 719226153, 501099656, 413337315, 725255533, 799293560, 259962068, 954615054, 373654234, 764439094, 914044890, 22085466, 539035590, 698634111, 313016212, 98993468, 941478268, 955683335, 902077766, 420565422, 767959775, 128648986, 355285226, 534029655, 104714136, 932643222, 778200211, 56428536, 225880543, 792355687, 449940761, 181471652, 529937629, 325235521, 6575392, 94094707, 441392085, 37264955, 911557047],
        vec![1, 25, 348, 3496, 28098, 190746, 1130768, 5985744, 28747851, 126764795, 517958180, 975500521, 75313899, 914923483, 611051644, 458281681, 932346365, 712529240, 185024083, 463834094, 950836649, 286357381, 871292163, 434939852, 58330077, 629835295, 27932676, 66354549, 10923173, 590226200, 526183672, 176005584, 809584977, 222348292, 260397896, 396327746, 178971085, 774808076, 78650222, 507195902, 144802453, 299847298, 581537053, 724817078, 350425193, 503589319, 654904119, 595937600, 992781673, 82554146, 868891604, 769490422, 119334199, 287573489, 85347169, 118147346, 949694675, 540939467, 927324362, 545027201, 610310429, 769058023, 21423, 262519735, 786795808, 240407039, 428554518, 447092428, 788617633, 367724192, 374279457, 343082569, 856162651, 150954733, 962857235, 700751807, 895999415, 533537747, 537990547, 268357366, 869434038, 633081543, 603452058, 947934680, 987367826, 743179254, 710352935, 835787228, 706586787, 845202323, 238777269, 405136472, 480736674, 155194042, 871452828, 677921910, 616952227, 984554304, 602482844, 894952109, 161534829, 782737895, 850072208, 670793244, 828100052, 222399146, 284700626, 231919567, 306545173, 673216888, 772842480, 314744315, 347738200, 25002680, 730048408, 649455506, 745857274, 196252843, 529935260, 419302767, 276709210, 732855171, 343508231, 624945362, 861002432, 484757974, 367927715, 209929226, 661865936, 531107025, 413469524, 479519565, 741904536, 610072165, 606639245, 934344602, 716197790, 587584177, 185414563, 306822687, 841034662, 971868532, 919896238, 158358640, 773475266, 936203252, 665923149, 911486615, 197651366, 774528535, 82937079, 883806524, 130206852, 774201811, 995994000, 245370199, 842572718, 793423605, 740588350, 687616120, 657690139, 857790226, 37323118, 88399209, 523321086, 117621631, 71036645, 222192424, 788926021, 202125596],
        vec![1, 26, 375, 3896, 32342, 226580, 1385350, 7560544, 37426495, 170077814, 716127109, 814596482, 388283574, 187079164, 480126707, 290089727, 38629756, 54115650, 64891257, 901599546, 718222041, 911275669, 323565019, 817912019, 805459451, 803612364, 201797073, 732830955, 80380678, 23464457, 701195891, 272214917, 913862649, 132026200, 669751010, 759341231, 973676755, 794065196, 967438659, 308299894, 10712690, 949669597, 781686555, 88559004, 727530543, 318751597, 278470531, 434911202, 804701133, 324324750, 981099143, 232682614, 987104568, 776649739, 786487389, 442468777, 569068005, 663709268, 881510700, 203686642, 57967683, 568729400, 236001193, 623959074, 703861418, 908672716, 70204475, 867825588, 827103298, 241630317, 362696969, 415618616, 805038660, 598704556, 10082872, 643477587, 415164213, 703084166, 477367476, 20036406, 629980785, 802614294, 952521645, 17601466, 311433959, 830294700, 548394039, 535645146, 521413012, 929141249, 283365227, 727229980, 443388093, 410708269, 286618040, 319768543, 938841603, 93475597, 394693465, 931196821, 495806189, 902879580, 707905623, 303901454, 576396872, 484544924, 486011674, 564305854, 311518869, 856442237, 372745088, 366968335, 813470622, 720542245, 551543931, 596748971, 778551123, 354920979, 984250497, 691689872, 327423759, 52302396, 920309409, 457393341, 162758194, 401889329, 760192486, 361045291, 58998809, 845800809, 8575285, 649668894, 501939170, 542308042, 574502757, 192463535, 690505425, 204738512, 689813836, 483570629, 525148782, 216925832, 952334594, 68584858, 946061868, 229986068, 113082103, 705545851, 563504064, 430610853, 209937938, 608555345, 578039088, 750439353, 944169681, 417934823, 74422181, 960090808, 568355902, 435674968, 894299009, 15861008, 618713868, 509911155, 168869978, 339481775, 369451744, 600513141, 71634326, 781507214, 857107917, 106564183, 736233715, 362800524, 615467708, 519437498, 342065337, 206666492, 505918934, 308299385, 20927738, 106279730, 457391057],
        vec![1, 27, 403, 4325, 37042, 267514, 1685106, 9470830, 48268511, 225792189, 978561725, 958557158, 38052071, 919433401, 254995547, 546697380, 704487939, 32839999, 508901654, 551556389, 663564198, 695178769, 814009554, 547143595, 371559020, 945387943, 670094820, 616330760, 976064124, 607380120, 8699769, 998280938, 580008436, 958036252, 912203574, 544195790, 396609897, 954428754, 708902921, 801338681, 431017191, 381717232, 344144422, 131861617, 874277396, 830300192, 596462835, 318671397, 244894238, 904557382, 834593756, 283869037, 697514761, 969250693, 509524190, 913260759, 384371901, 692021356, 509945770, 32685910, 505430483, 907189201, 193340383, 693205397, 603006308, 305262013, 925218957, 968092842, 27052064, 47727228, 477199307, 293774777, 98292616, 663047137, 995897620, 288543890, 998081856, 524487172, 892499155, 556044593, 972323813, 578208602, 933674462, 509188659, 985492681, 986901126, 628028841, 519717277, 311965185, 897395442, 829761538, 9680527, 161715155, 343759581, 402616197, 861303980, 911400557, 358697993, 515548395, 553147014, 892738525, 205604013, 762111690, 442223169, 7841804, 517369986, 84729818, 152655938, 700957258, 898706126, 75157861, 271201265, 543855670, 440588279, 204308612, 236683234, 208667572, 404506592, 809547310, 853106482, 518815458, 16491026, 491832633, 360120645, 923872102, 602086347, 641452842, 18221609, 229080666, 428455406, 569262655, 856993308, 230900297, 490066099, 367669571, 96292417, 52365382, 469261002, 374633464, 900617667, 182287939, 49700390, 796588976, 949085023, 222503562, 658471212, 94278399, 66098044, 72459139, 603916441, 257635815, 234793049, 951525459, 549173423, 938321308, 13662267, 288258509, 65326301, 11071916, 364716823, 929353581, 839483911, 199241395, 29486252, 482468148, 829994735, 370892643, 687560607, 531658704, 568187724, 486108828, 475403750, 227529481, 124500798, 228110006, 56292488, 958873404, 963718586, 481659835, 183136868, 593123751, 622015148, 469053734, 211587807, 928091671, 481375722, 612130911, 134707706, 334981252, 784422204, 712253942, 698883770, 390222722, 25478322, 28778175, 349558455, 616616543],
        vec![1, 28, 432, 4784, 42229, 314064, 2036108, 11772944, 61710789, 296841956, 322742117, 501368237, 486564198, 208215103, 787564548, 236938424, 301578523, 866593178, 461034739, 153403692, 741061604, 268366308, 41671958, 999969805, 820629183, 540097933, 348143198, 290585123, 709901036, 830657214, 397773343, 205345230, 80836479, 744283025, 767371096, 13280133, 166091858, 688213267, 405245759, 999129285, 957885801, 125598090, 229197648, 232621259, 771781842, 15692966, 623498734, 209019752, 451480479, 405116698, 905232949, 522429827, 160392239, 911337480, 463779522, 870625842, 997849245, 364479050, 834828, 300785526, 10186705, 265101999, 566806573, 614983712, 685595755, 48653250, 344390997, 673637797, 896886255, 108856368, 31386606, 486989879, 489263782, 517653845, 976993581, 117774221, 829510874, 294191687, 233225993, 831800739, 448583977, 657291524, 649603801, 456575978, 536862581, 855051723, 994222346, 302476269, 502749737, 322446053, 790323255, 357338908, 887312147, 181428924, 536100952, 55330164, 160205355, 190454705, 365581727, 201998030, 826748536, 400273437, 624522779, 849319472, 800147953, 80982274, 447705256, 168185200, 97822479, 309878269, 678607548, 912097410, 927785144, 334246635, 662138658, 715198385, 260363473, 461374975, 89468114, 651175074, 575096135, 130470890, 71518840, 879845193, 486812125, 128678982, 647847215, 49005945, 59417027, 550597313, 85275582, 589669875, 488581288, 579391253, 238935007, 307933774, 801626662, 991248834, 831660242, 2289249, 939337934, 170802252, 112167473, 712496239, 45742853, 482400666, 341362938, 957391891, 147812751, 376451585, 832724562, 418101830, 38563919, 274362964, 819817184, 400041713, 313141267, 806456583, 999307614, 670677205, 585839782, 845991536, 831623045, 109161241, 554327240, 822718306, 173814042, 363700239, 22366070, 479904205, 190929878, 554951008, 774006606, 279182950, 109357938, 401823952, 575672540, 860574847, 593910748, 547825741, 217594637, 989467389, 184852185, 331539318, 325720467, 383229710, 654245987, 146654996, 209385163, 560462909, 965812836, 65583448, 508391947, 709539829, 955465325, 214525022, 394005813, 531700924, 773028650, 417539579, 326670161, 406612199, 165245, 699092510, 550837077, 14964582, 527720684, 440459594, 268905155, 297293091, 881879628],
        vec![1, 29, 462, 5274, 47935, 366779, 2445008, 14530396, 78259797, 386723841, 770080067, 561338901, 331351593, 839635833, 167817400, 497149119, 881282118, 352201610, 471630724, 181160121, 88806794, 987377178, 289689361, 946592969, 656979867, 594487341, 196240769, 948508749, 810784209, 709855728, 576276359, 518417791, 87667236, 667014934, 181628700, 79050911, 337053925, 373883684, 560120551, 458872893, 815731972, 827954345, 771964062, 380463298, 190074568, 335845313, 308369049, 297128477, 730684746, 742600059, 263592454, 96421517, 206168581, 306386280, 238588046, 136275025, 509837233, 285349782, 467079296, 44733505, 132275281, 829959933, 391862643, 62600608, 253168338, 426879146, 365435454, 91732486, 471304236, 543190875, 798110387, 894371900, 696428631, 750022470, 726550236, 936549828, 542410178, 939184541, 791578453, 983635297, 823881369, 150676558, 585328209, 653882077, 963087655, 950795211, 936066317, 71868369, 440124326, 965151462, 175368387, 40663323, 699428294, 108367130, 332044307, 970432796, 572024201, 885659377, 539317691, 132218646, 139253073, 467726930, 45351751, 297376822, 508633325, 703469419, 746467332, 503668629, 112630766, 930570931, 962347630, 576196343, 698904389, 167199167, 333129737, 608922442, 222067115, 688206452, 802821275, 954540394, 911151138, 906746447, 902608727, 890863920, 307268385, 54404696, 104370759, 495676754, 441341576, 829087999, 88911607, 975336543, 381836343, 298727399, 758323163, 709721214, 146811076, 322114121, 909574264, 955852236, 803216000, 511491931, 157225317, 671670053, 367885171, 612666342, 842261160, 508147005, 345029386, 809990068, 981225972, 241279545, 458275632, 172983843, 48836190, 961296645, 538132589, 271432367, 877708377, 386417805, 815731556, 463571419, 404450924, 113136747, 549319603, 219464194, 220054123, 907114544, 328856175, 265047793, 589592614, 328159953, 809008569, 510434161, 420313068, 107873733, 868895119, 895337042, 156863206, 48004547, 666506430, 727609186, 85858741, 59205240, 78940637, 545962715, 139572749, 421355881, 858507471, 952603331, 401020118, 942925111, 296295597, 997986384, 115737481, 677010850, 282276283, 274892540, 163700485, 118592549, 846472792, 136765224, 236032397, 179431589, 539549211, 214067143, 923131121, 999465547, 232088789, 610013691, 896204760, 478686995, 218989077, 91096939, 221616643, 243944261, 454787573, 542927414, 355318220, 147354818, 482630, 675619041, 634351197, 478341164, 574509037, 738721209],
        vec![1, 30, 493, 5796, 54193, 426242, 2919073, 17814512, 98499977, 499582398, 346636279, 286311246, 338970899, 482987014, 740494022, 522312682, 389124982, 438269373, 295660905, 384589942, 269003911, 190728878, 21841107, 394443500, 159301748, 885681179, 869073529, 396029106, 969827087, 16747334, 474716791, 259235367, 753984455, 365768194, 423375006, 957390875, 407261764, 592999097, 928039310, 529328158, 133251022, 533719572, 434981329, 779487889, 212784950, 467080112, 287628298, 91658981, 576061624, 322787361, 682746649, 234833733, 676878118, 220869554, 982232103, 879428014, 742840902, 65876039, 230084790, 68776407, 988541480, 113769367, 288661011, 898604342, 790158821, 811679832, 416532461, 643426286, 357304561, 904850873, 143689492, 643378934, 217587561, 816799579, 741653213, 950522177, 519192837, 195766899, 875531753, 913462122, 931740864, 147485151, 73473743, 881407231, 943949423, 19375017, 95185407, 658198820, 654223830, 78841384, 487272636, 810454297, 156111172, 108214345, 594083015, 721613382, 413639222, 199581479, 219296986, 983776208, 50034813, 434669652, 336761553, 553659069, 443256837, 867959007, 649693919, 829394710, 511124003, 801382432, 809258820, 440312724, 549557631, 57091967, 619973166, 38255131, 989252595, 296849831, 126449228, 992478958, 948085171, 398912012, 308493194, 585304989, 581850817, 704472537, 457658359, 706849064, 974235300, 322942033, 801441410, 806760539, 930211369, 674605925, 140615032, 804334982, 654022727, 747554604, 304695097, 670935186, 973200118, 899755340, 43016718, 33443894, 486649937, 183173093, 28680647, 612676891, 17478829, 208078434, 467131016, 651933212, 464433186, 3993644, 959280435, 310671435, 524438940, 540166082, 143663989, 984026973, 596317769, 299039541, 925611762, 115137245, 238184581, 798462400, 902062936, 499673997, 696053154, 121959061, 376644235, 378356623, 996412950, 115590297, 517087995, 817795384, 731733847, 61225249, 930096903, 292653780, 149516053, 503527083, 233497811, 781589564, 87992011, 514696635, 495015483, 151617728, 478098704, 773499685, 621536652, 787266199, 440325002, 249898342, 747360642, 671517137, 216648293, 686506084, 544204132, 949750238, 249236969, 319054830, 756596931, 233403453, 594672369, 158463779, 809106181, 249481644, 610711719, 262167344, 179138909, 270160113, 278492510, 490828032, 946977816, 803242084, 541036271, 624688984, 204404014, 881539240, 779609382, 561095932, 524976628, 888316278, 139701497, 712146362, 413036824, 810411985, 241441787, 247390036, 695355554, 122993697, 227371919, 399947791, 833892197, 899399938, 781528108, 656359733, 551706967, 845829828, 900357325],
        vec![1, 31, 525, 6351, 61037, 493071, 3466221, 21705119, 123102861, 640304911, 83941000, 859775332, 485271727, 929183599, 393442380, 976105677, 287805815, 238271867, 74391877, 765979021, 335546599, 709265303, 808915958, 907593582, 463983041, 147572225, 888153362, 391439968, 221443415, 801779213, 245226914, 866175931, 810047153, 267980729, 805674759, 955321032, 906824500, 367243333, 486256638, 145115859, 530769671, 290945081, 932311137, 51068986, 807551107, 185085629, 261181005, 959829857, 118218336, 295880881, 506261294, 848742193, 936582961, 153400705, 578662225, 341741810, 161659811, 816049772, 839223846, 559301757, 400427189, 216771109, 207016492, 505237766, 795055758, 945605740, 555992642, 907845643, 982951177, 401043526, 597396374, 84431994, 362552441, 746539639, 303946121, 357484364, 893505269, 526515449, 560103044, 121894895, 445706213, 592793631, 713670463, 810676671, 143889731, 392244416, 73126772, 488568958, 542583029, 752584772, 7383345, 155007498, 994039957, 804821801, 379264833, 525210782, 239847467, 126254398, 219331239, 753237922, 434345445, 635807399, 872366121, 133933893, 590603804, 32230684, 70841222, 840236255, 909722819, 689521789, 529248821, 178846494, 980363222, 548654005, 434479841, 697553680, 35011089, 544881135, 260563063, 695816358, 44173506, 726085055, 671716390, 781464159, 450226987, 146813053, 877951734, 991641337, 221699230, 419417817, 794832550, 810418558, 969705412, 219055178, 274301546, 503413612, 695160244, 74090275, 26176299, 695070748, 341801549, 897892431, 470380437, 3467372, 448525308, 439337134, 724845391, 9187155, 585558376, 372261444, 277930003, 34819054, 431482585, 279947765, 492267585, 818516372, 484582901, 390623889, 856573701, 179325546, 611189228, 688765384, 847931848, 534263758, 557397045, 116495491, 85868985, 610969731, 478650084, 585159686, 14772190, 776211983, 474268574, 460744792, 134988124, 912707317, 105964987, 809266690, 785401545, 161419686, 653370610, 499797235, 534961655, 323936668, 802659551, 370287438, 326963010, 342959476, 313044094, 148582386, 976795271, 120954501, 724957759, 860215558, 270001726, 640931921, 833230238, 701256342, 242231076, 286286219, 13632467, 253663042, 129411109, 603714672, 564008356, 523901279, 216864213, 524434304, 182659511, 983267072, 644616701, 707181007, 618980658, 405751838, 571460922, 136629759, 744395053, 539608518, 963053644, 97893406, 866038338, 265757870, 944699732, 964525924, 892464175, 168006507, 562926324, 742708490, 132927348, 526909479, 79557205, 129052432, 157042523, 659309142, 834183171, 802572815, 517259737, 256356803, 353227137, 87135975, 224995979, 596580540, 402931204, 515099940, 793833445, 691900231, 589149123, 114327507, 887760880, 389703467, 830251700, 783657579, 433484966, 412892473, 432995349, 911076886, 112628181],
        vec![1, 32, 558, 6940, 68502, 567920, 4095058, 26291268, 152836946, 814626856, 19929138, 508014078, 3627542, 383619686, 178749032, 257695016, 714018516, 472708243, 782289684, 785010736, 673452130, 967313791, 416615851, 594708501, 823838568, 374885539, 520875465, 462873691, 866641568, 110422771, 371334024, 597629306, 954905318, 192386746, 711820060, 202869372, 886359460, 670157944, 884126969, 502946720, 582271977, 402610790, 343533084, 511648372, 517557636, 170605372, 597697292, 829559995, 983984749, 601678152, 265076525, 200313780, 586898347, 936910249, 473920775, 97417050, 844866738, 973357211, 106398807, 531568235, 220592830, 72245680, 709223174, 966562898, 364453034, 204299565, 516186616, 388239153, 70201813, 72763421, 794896998, 14537122, 759848271, 370782607, 723372604, 610938893, 161728308, 212501210, 376508968, 271352258, 323852567, 552136716, 801650724, 615740271, 208656790, 224034222, 747809272, 617340476, 153891047, 285642015, 901118362, 123777425, 16228193, 623027527, 937436377, 60747289, 714381298, 882770713, 15381170, 999192137, 197256049, 480638655, 953137460, 883599778, 148656904, 722191509, 39402136, 582147050, 757441169, 260428827, 253172482, 508174417, 834955862, 157349819, 261175551, 247577251, 264652493, 595186522, 812752039, 875384578, 747313263, 224431706, 462673707, 39074204, 237357876, 896371707, 361524710, 10299862, 761952483, 924315000, 304463541, 831385606, 228637562, 845205390, 599099308, 177524018, 209006125, 256908838, 355221513, 792061054, 713446694, 397486564, 756107839, 527866716, 337624854, 575430320, 456754471, 959728018, 921786900, 102983773, 936936381, 473475121, 131588049, 189268154, 863126769, 700571091, 871530822, 832046604, 609629520, 45186676, 853387560, 464311797, 368430192, 151536782, 691919878, 176735598, 972465597, 804610607, 50289062, 722819065, 20410813, 11987321, 648373171, 889715409, 778512390, 280809979, 767453391, 155472064, 275305459, 296611231, 377220752, 229158487, 259857310, 987705391, 873889855, 448418244, 657467052, 301028637, 400332864, 304525446, 853531448, 201469133, 757430782, 288842043, 292821474, 389580374, 148645279, 450672899, 404696472, 399758661, 549392647, 972607841, 459482261, 344863732, 405989209, 14412475, 913865943, 988039851, 302203080, 293916756, 28383491, 502818531, 791480646, 619991127, 151573496, 311251301, 362738947, 457688580, 884177111, 390413172, 889218635, 530910268, 818241216, 542232757, 765042883, 885001834, 10229128, 574524301, 836418812, 984923781, 235783687, 868003012, 379478756, 832878398, 751487743, 496700139, 587857943, 624473538, 510088706, 778144708, 214176553, 953029206, 646822434, 252787767, 281229254, 401166205, 434753895, 343430684, 941989547, 465870277, 861407908, 387687010, 216509894, 375279811, 453878600, 982073623, 677731113, 95924240, 198468867, 861679672, 204003039, 472066136, 228890861, 880462406, 133638984, 924365283, 274136081, 742318625, 898640542, 85174164, 775817726, 982947180, 716729952],
        vec![1, 33, 592, 7564, 76624, 651480, 4814916, 31671996, 188578368, 29248753, 200002145, 508415428, 442411092, 823607844, 339155380, 84465338, 814093820, 347929398, 722645092, 146033429, 312847170, 460125097, 915837300, 530134554, 683613860, 22911398, 950166343, 297700883, 874171812, 779302544, 705201416, 91735442, 764568060, 448540109, 794383951, 50664826, 501387621, 764478731, 392332791, 697065547, 136584719, 904822171, 811342153, 498086442, 66346910, 903864157, 648069920, 294527566, 68277872, 192952288, 465503414, 89641650, 342876181, 975687654, 849073744, 732768838, 299144725, 960087859, 432060633, 521050995, 669642411, 783220798, 964761936, 888496451, 578822675, 774117896, 595815330, 556187991, 328078421, 497539038, 461150544, 593197759, 454579240, 228665398, 675695769, 189021504, 506127036, 683711210, 767254008, 372876392, 950363733, 781425867, 518441353, 618578159, 210702480, 146366158, 211092828, 25645664, 252569415, 768287264, 315751220, 46304131, 875313001, 63062094, 41563387, 521548621, 882111752, 325592507, 674715724, 754661696, 386558110, 154963091, 238088464, 48050421, 639662963, 70331570, 315682289, 290604457, 553625701, 114470501, 286499320, 302628334, 934963054, 90280656, 946037777, 701374947, 21339121, 663053978, 944685826, 452543047, 117230904, 560747251, 199227363, 16627409, 318622953, 147892287, 924956445, 813803967, 785002825, 524657750, 94619872, 228326183, 399365341, 370689535, 675442405, 908504726, 873312142, 624281896, 910865167, 214431914, 356568789, 649815619, 48684312, 203060656, 723151845, 388405201, 798060040, 729614446, 977682164, 533436928, 146813819, 149571082, 895803037, 777214043, 552248021, 204656845, 982800841, 733286978, 63964308, 481147156, 389291330, 76639625, 311176854, 441157810, 671041225, 83215916, 462900391, 792922861, 933493638, 911064426, 640299582, 658369868, 816565473, 95242536, 385493380, 848295064, 737403618, 437312030, 117969370, 718173112, 995019578, 309321859, 756181744, 40101942, 426476878, 702396178, 795715493, 835764511, 743326504, 209546865, 430615231, 826070511, 334341237, 118979238, 371120144, 839568659, 676120384, 72519, 845333099, 357629799, 910834209, 593346831, 104377605, 380654497, 634970517, 115890735, 793059350, 887063630, 651636452, 507749972, 783577804, 143656503, 242083869, 911105370, 970085702, 524972130, 465698950, 325374351, 536364599, 196104291, 139239152, 633851401, 256158579, 919175466, 894613648, 315818683, 5141779, 876022828, 934709255, 681050535, 191918360, 662583345, 207316521, 848780031, 272975543, 702356884, 769886013, 961041057, 6500208, 70262300, 494310602, 739703998, 384177576, 343193798, 693062586, 969762392, 66952659, 685150241, 630304511, 413041585, 515441116, 191001103, 912006289, 473846745, 605301455, 795067847, 856671001, 508821454, 735406667, 258084054, 117733205, 780290039, 23367661, 593944851, 692132515, 4650353, 187487602, 151055135, 898863554, 673507355, 215091232, 603704193, 594167428, 682519378, 496434131, 965159536, 430378180, 248402836, 470772870, 307340881, 347656961, 749714755, 122062081, 558277910, 169666679, 941915597, 277380477, 270070849, 652088255, 549544085],
        vec![1, 34, 627, 8224, 85440, 744480, 5635892, 37957128, 231322416, 291965329, 678229698, 199102832, 733159273, 432255582, 825398987, 945721657, 530531857, 605903605, 198451639, 405128341, 881104650, 95712824, 87475937, 88052462, 854657880, 671362129, 345256719, 279913923, 405600244, 791623773, 184158289, 548244621, 559931899, 811302745, 822463013, 829884052, 612803610, 114370483, 717655175, 250670751, 158660853, 996989593, 922821653, 403693850, 640224917, 726696528, 558324649, 504260316, 457498775, 235424755, 214797729, 595578763, 703649058, 668639597, 273743575, 830864733, 8621856, 152359528, 351252345, 54682531, 631863641, 533130514, 548187372, 212107229, 690348600, 269650465, 644636821, 588449397, 716956418, 569059993, 571818753, 620732748, 238441683, 628780105, 73251606, 77232245, 265685085, 860541096, 181038883, 995121568, 787161997, 984175916, 994855981, 70309595, 279951259, 412871815, 881913054, 268261177, 575207129, 196951994, 610045829, 705950877, 200402175, 179100085, 912730914, 795237101, 264189519, 756871237, 840795855, 477498958, 568161700, 101820158, 478938140, 546807900, 824972458, 320572966, 375535061, 712736750, 146215080, 296045377, 892271196, 198915619, 973312163, 292266224, 766955048, 774760742, 724672108, 189810671, 590576941, 955913056, 705860403, 956268133, 120026477, 977289531, 897970234, 594373646, 802624855, 16139526, 294245189, 661099173, 505327457, 687552139, 570417673, 288750674, 928298666, 124243321, 103493234, 782666425, 810561902, 479140046, 567654010, 66398299, 87173858, 171094018, 401077961, 201022453, 649177770, 751032860, 458665510, 583069945, 3741921, 644139368, 777863779, 427938859, 574083500, 968708036, 5259009, 14753514, 566158894, 428971413, 29779639, 601893398, 934948155, 463945886, 442386091, 787098075, 294593703, 467511028, 998601384, 749411810, 495421040, 283658473, 287441865, 687819162, 964614928, 353638623, 648210867, 238886215, 893364457, 158958124, 29345292, 800368429, 595552294, 572640574, 913495958, 705720935, 850127566, 83220185, 799386246, 848828465, 335228800, 498492912, 819731260, 972790229, 191002130, 289923062, 997108332, 479589354, 13686350, 377632380, 915241611, 38445376, 115515812, 312111610, 862313776, 36444206, 491509332, 899038496, 494299749, 577210085, 925017398, 377889538, 129014425, 544007299, 134491550, 77644047, 150186363, 549177782, 243194000, 889811949, 476414356, 302027816, 934223010, 116351600, 936035078, 728736728, 99057293, 233685532, 715949090, 484999785, 527817757, 40017975, 403976200, 963752121, 230480821, 165554215, 501580240, 480519751, 374582722, 588438105, 13652788, 835399525, 909982574, 63720437, 165170490, 768431894, 385829327, 268804006, 950180874, 398363435, 512876602, 149304949, 858796870, 305796565, 80654592, 209088881, 365995652, 741417209, 580938286, 849913699, 209592153, 430983500, 292682916, 89781822, 346251985, 899920810, 490814818, 319818650, 865676138, 199552930, 49606030, 396988194, 289382805, 394082926, 680976370, 125444750, 312554820, 11884810, 730982055, 36906819, 144996838, 532313029, 339360681, 509568859, 763509787, 79118993, 930179491, 756170211, 627420026, 161269793, 542072728, 498021200, 392693531, 523036960, 919765468, 367278574, 755839168, 466305341, 613534367, 534169086, 166110829, 107021592, 280650539, 268761091, 590645300, 269909358, 234042842],
        vec![1, 35, 663, 8921, 94988, 847688, 6568888, 45268120, 282195928, 611807809, 518705216, 990050297, 271051698, 122408000, 405189613, 94926808, 864141322, 53735275, 24011733, 736554738, 929218491, 904644261, 780020466, 504939462, 734736582, 905177688, 612557341, 964587741, 714487014, 841745335, 939266470, 221175663, 553510265, 427922711, 816845808, 551876447, 104782423, 432788437, 75343637, 98990584, 780296494, 401590023, 184896774, 39759619, 46187357, 134251301, 342702573, 517720, 358976055, 583636644, 962541900, 167548822, 161325057, 550357824, 277594189, 165080443, 231182951, 735855208, 908711807, 571176463, 42569340, 237272417, 790920442, 624258522, 720842250, 768667158, 451444080, 122083868, 366641147, 308868590, 806102171, 616667978, 212552319, 508058403, 321794596, 570313528, 460066496, 737582233, 710064955, 691296552, 63281621, 675218599, 955697061, 110510427, 512018248, 153536802, 745040214, 175960352, 594730127, 864516601, 686994354, 671193730, 758082482, 651219990, 268055455, 209604272, 794711886, 922988292, 233697499, 855180879, 757331520, 952855529, 712373324, 501054908, 610479660, 988305583, 359797155, 981016202, 392046260, 222705767, 339379031, 255395660, 760704862, 824907580, 377018926, 100950434, 568292199, 345612839, 702169410, 76425882, 316244660, 633878521, 345805531, 43908232, 498746978, 171201976, 618174067, 828038701, 451921110, 452033897, 911744318, 64098066, 83924105, 595571257, 147937863, 948006101, 514496555, 77289879, 282007238, 421799065, 804334778, 765393189, 193008022, 263503242, 355816072, 278012511, 227861525, 902054870, 618486736, 979710805, 971590402, 61042704, 664850817, 113175896, 488535341, 617582794, 612947413, 45804546, 259073867, 263038734, 265569066, 162645795, 60875191, 359494871, 979749311, 139358127, 29529290, 309151363, 279422923, 345089768, 87598058, 700337527, 479652910, 994907927, 933976635, 324751070, 167729179, 810904540, 230096199, 33195878, 559883815, 674302503, 158162721, 997344757, 974400760, 476723636, 933671908, 372458552, 487353300, 603836216, 903251923, 461631785, 620155186, 664707969, 139328434, 135802315, 547850780, 544085832, 243757336, 714792500, 277247444, 736724545, 7257213, 104433298, 33077964, 133546300, 658470668, 407613385, 15549086, 409602732, 220607605, 154437658, 434924060, 212726357, 432662346, 953726155, 55947205, 221865215, 896738564, 702917595, 219549259, 784888336, 998968443, 737927890, 111474776, 479544893, 204531672, 722344756, 339644359, 296335713, 172390948, 145219000, 740849986, 175518952, 876047366, 775536223, 909308844, 333180421, 96764559, 528034987, 396799645, 413114766, 622993858, 563074288, 710510893, 900874806, 315196225, 993816000, 623166550, 642968249, 328645521, 844280596, 556521945, 272458659, 580772239, 284457451, 186994948, 909094031, 935768265, 319893231, 114481887, 109302906, 586737223, 466388545, 717893242, 342269015, 164207650, 394855609, 330099455, 836592042, 939058426, 541984626, 852636994, 524042858, 358495217, 921118657, 464191254, 284341637, 363378706, 679058686, 917272314, 562488937, 105215359, 614330571, 404183151, 365378837, 280141835, 594380252, 79371576, 739360814, 210010442, 10232401, 449147207, 97531383, 696215921, 900156881, 51327507, 224992261, 946786023, 685932368, 729503576, 741723150, 479111191, 872812474, 454570174, 217639787, 553029674, 745481673, 194164134, 241094015, 672191097, 520725696, 177728245, 485102929, 511421076, 349030122, 157631252, 431267952, 813510823, 604978728, 799539100, 871169236, 265066919, 191499414, 52282294],
        vec![1, 36, 700, 9656, 105307, 961912, 7625652, 53738944, 342470612, 999200441, 797070294, 375863958, 9523173, 166271514, 481765400, 879554808, 535680694, 467340394, 413500052, 692064693, 580959888, 369347871, 169821810, 621921924, 137911737, 940784828, 741570244, 905517670, 551817302, 657369119, 721648393, 536831850, 500879720, 726253305, 296162041, 891225164, 880747817, 182180719, 544050763, 654393489, 357200480, 356889637, 635049309, 374948412, 486169649, 407475615, 51228607, 535369936, 325305756, 74215114, 944988254, 919680639, 647644667, 526651696, 763479161, 278201627, 103508412, 387580497, 561661113, 38190290, 310583115, 569811056, 351262691, 985051203, 403138813, 643132429, 289980808, 570569544, 550559442, 934893929, 352045239, 810200946, 61218795, 42358563, 89293505, 506603831, 400595820, 117891860, 469015294, 166372283, 320554017, 155147268, 955469333, 896730515, 826039051, 931193995, 36098122, 893366407, 522834450, 917130400, 759016216, 23584371, 48884561, 844352920, 604253909, 886656394, 548946691, 688504947, 972899398, 721435398, 409845929, 399680456, 284950632, 796741351, 217452678, 611033399, 592790059, 219084711, 504058472, 277505825, 120276345, 694287126, 35416589, 305976723, 447309020, 969824889, 565684997, 62139306, 857693940, 901163636, 262850397, 927594387, 721909425, 958991660, 471789360, 260033992, 544270783, 877013007, 153311613, 85679796, 660447085, 213261352, 954007371, 8266647, 75417194, 28241545, 733410215, 579803150, 41901427, 876245480, 900022334, 813145019, 668096269, 73987267, 175135030, 724217744, 139403302, 77167168, 775504145, 397863476, 816272710, 221129133, 242347768, 885383757, 728565085, 947647994, 605379205, 598139075, 269419404, 178994132, 603450690, 652850980, 19254430, 182635911, 57268581, 239936865, 878358438, 515315850, 141611162, 665647032, 700517198, 807335907, 965806030, 897617342, 773532343, 924389029, 419741954, 420757062, 581633294, 179995348, 34733596, 923518220, 731757774, 573741822, 531242380, 813544540, 336821038, 442738016, 551572674, 470067223, 638102335, 989538200, 956007535, 613954394, 401563904, 103519975, 569290006, 144046622, 689996849, 638589501, 358099514, 725282594, 691632053, 702244532, 284031792, 473014945, 465414316, 116886234, 142777936, 342518645, 138051544, 347505254, 57716395, 939744642, 114873890, 359397343, 671360195, 724489266, 683013222, 345781236, 550104449, 877003874, 63443231, 224660360, 658626409, 133687251, 933261032, 273131705, 48202694, 144323990, 559827621, 779609382, 930553156, 35267489, 493151974, 645090534, 517431516, 368634145, 540405134, 215255527, 144656993, 549192120, 659960465, 217236722, 742258783, 538378955, 211409043, 760044403, 389330065, 692548510, 583181570, 627949137, 829194932, 234693932, 651493437, 707321269, 828284674, 652751037, 873736576, 267300299, 729754896, 429920674, 875733754, 60888792, 225478637, 39002446, 407176220, 761384762, 131879783, 661443680, 51638267, 568172852, 186052558, 637968267, 556455031, 313451921, 238551452, 644714578, 449541818, 640800540, 923965193, 38909678, 41940756, 338485997, 888949941, 526610135, 48150535, 778944981, 480892059, 874500608, 900322190, 973783674, 468787609, 618167632, 913754856, 327797543, 845404908, 752246622, 831422464, 484541178, 501948673, 647306990, 882577308, 771072569, 171273117, 620085552, 385025714, 126556571, 472404266, 664907284, 284895728, 860747643, 285481155, 480968189, 426457284, 579997870, 253315436, 264967992, 325506073, 407074927, 289125366, 710111895, 168902913, 39893459, 264014099, 335462311, 284068808, 624620216, 265346008, 330183605, 301153063, 136165951, 223572391, 416076696, 791322793, 440956632, 812128221, 56870528, 529001955, 157225171, 153110824, 659760559, 934444871],
        vec![1, 37, 738, 10430, 116437, 1088001, 8818820, 63517016, 413577336, 466132154, 602224077, 950429493, 571044537, 948550192, 759622519, 360792951, 40404471, 549575252, 331339348, 353289303, 642561133, 959520386, 811439523, 113998222, 306747368, 686402540, 608623079, 625536502, 102898449, 513583096, 310389938, 861964034, 144673299, 459932354, 368865341, 656127608, 909171212, 807159815, 446679967, 582385365, 827063804, 980667706, 264330272, 600794253, 740948802, 906942889, 945728377, 18846332, 985664112, 7701519, 115050801, 870345183, 606442987, 443069595, 817056595, 621418778, 690512206, 255049968, 161633922, 402904753, 372549674, 317848199, 779510849, 454579621, 366999138, 955388684, 940196190, 710141532, 289889641, 400266971, 473006189, 518001144, 203532149, 277752196, 73653399, 957077834, 580796815, 797359407, 33679102, 974181950, 229170666, 221016673, 753153481, 718492334, 480056326, 134801483, 829292600, 87160542, 624566954, 157188714, 912350324, 248797376, 864861712, 311625650, 564724833, 638897879, 211767349, 670618766, 182357348, 406247054, 335828971, 235855014, 766599169, 873180801, 943988159, 797515463, 949064434, 37355164, 366387587, 992037332, 39085136, 457008562, 710738441, 147115812, 245127944, 221285308, 44913339, 750687382, 166494925, 487773254, 2533400, 294773545, 964749926, 838352064, 354747747, 983055334, 906311260, 773970452, 136280712, 732037766, 304757958, 868694356, 9717274, 686595153, 845171773, 715645486, 457517675, 868876321, 257821804, 398717354, 952878758, 459394839, 735151005, 982831573, 597714383, 483469574, 396276440, 147004054, 275175512, 449695021, 280047682, 322443740, 657859781, 236891682, 338855034, 771308208, 208042945, 611383416, 470020781, 959351211, 871193372, 314812327, 417008584, 157794928, 30304137, 772193806, 92880268, 735754383, 725090032, 678769251, 695572650, 713627047, 220917673, 996272940, 711499227, 615337951, 732510553, 265860373, 10346269, 946167168, 327969286, 691646116, 588894836, 556718107, 891256057, 29035235, 193826291, 413628097, 951441661, 812044940, 432676044, 866499015, 139084375, 351784477, 900166473, 781089061, 914118385, 818686834, 857340116, 329139077, 237478891, 284468211, 215304591, 458481845, 227432873, 865995208, 554027168, 463893384, 221077016, 374577314, 119759917, 360383422, 704486222, 404678036, 137104816, 809074680, 755219457, 826569646, 867839827, 768754773, 89100960, 257194726, 724398193, 973188469, 858913715, 18463743, 680309520, 450458743, 140048366, 764912130, 371007014, 456635116, 735728421, 778688084, 152973997, 434969799, 574794869, 212648988, 728361716, 542931287, 302379989, 751579729, 92390154, 220181191, 407743441, 315151252, 520426045, 407908622, 679231575, 395003916, 794034847, 347654216, 68808817, 829211530, 81601558, 162714123, 30761100, 394951130, 268715057, 283612447, 241955302, 623210420, 275963878, 159211117, 252162685, 595441437, 529655660, 437222092, 841111836, 179960886, 135660761, 917237477, 768051317, 444580903, 506791801, 487181239, 875489229, 680194597, 205928376, 680445786, 683783933, 969592088, 132367844, 396994570, 832926454, 630581401, 505495558, 385734337, 641541057, 95095471, 989574773, 911275608, 518514268, 282262989, 419271827, 469001628, 420271862, 947083037, 407529572, 59976989, 434008630, 863717239, 945875935, 75676474, 215313835, 250745830, 87811894, 264747800, 37018493, 98597371, 710706515, 142785594, 391940962, 336466122, 341268838, 21508490, 413865364, 232101532, 92701632, 8053527, 412757119, 757312194, 403681966, 949009531, 880975038, 37050684, 272465075, 678404684, 193438246, 672480427, 700064004, 142628578, 802581416, 279140871, 973655892, 800905741, 598005728, 935768930, 668573394, 207197197, 649003003, 270174246, 76144766, 315632510, 875459369, 359185050, 528086919, 473525359, 758981160, 249109513, 189948776, 344668617, 795917722, 549344159, 348920520, 486734532, 302843834, 285724416, 810790165, 350603652, 574459989, 873908008],
        vec![1, 38, 777, 11244, 128419, 1226846, 10161959, 74764168, 497121432, 26344483, 38234873, 423642505, 376339808, 863392989, 917340710, 353019266, 355701734, 828153534, 204362640, 374924405, 607928554, 963790885, 940721850, 687219775, 764705852, 876861874, 763291630, 981930457, 551085656, 980270580, 505906881, 983294521, 135354674, 135665519, 630173290, 212355830, 143623144, 227056594, 817242891, 163435465, 418550307, 731605596, 289566443, 285968813, 433396374, 290335437, 260134359, 257166798, 296375223, 99595679, 459082068, 507135523, 972388714, 133158519, 975205558, 982374421, 644050428, 996778111, 162109063, 746906113, 514292299, 926426755, 356009260, 196659267, 409916170, 325494529, 655002543, 558511285, 36446396, 471095084, 174722764, 671116976, 160891233, 868903396, 304037581, 23612943, 337881011, 234387037, 370561646, 356075504, 698718914, 535181667, 514726084, 815242029, 608023573, 448544035, 835833664, 991058290, 399256230, 20531824, 669361826, 539724566, 760387110, 830813942, 547045707, 178050500, 929198630, 6813905, 110412371, 858816899, 809729618, 833864785, 232951975, 485491061, 613385270, 553071180, 627954610, 952757220, 692906182, 748961577, 662247263, 52513186, 149763764, 145530822, 33882391, 453364543, 997405166, 992558694, 759602854, 84367345, 100239977, 854081961, 858205595, 486024240, 91555639, 177882871, 949083392, 519037398, 556513157, 228484413, 492836072, 589348909, 196163508, 266626335, 11245627, 157404436, 270481031, 638406640, 490889097, 527976504, 370488458, 823400678, 322868722, 206357234, 647142926, 768625346, 265191551, 148038615, 363341916, 267722164, 893118504, 738977503, 565582757, 762106365, 849369394, 766495732, 13155357, 515888816, 523640060, 647203814, 437352666, 546684558, 961386555, 7614498, 893885274, 936701598, 428062192, 113231261, 402917050, 409965843, 165984892, 799921270, 659405770, 509144023, 774701607, 842603658, 487390464, 251731862, 581859608, 922860080, 258383681, 201597752, 292594441, 460903867, 638298912, 848020590, 765105850, 965506327, 844776867, 575276415, 85481014, 653985938, 197424999, 197600210, 989591463, 112466859, 918937916, 878289962, 30252094, 561367106, 701604983, 794157139, 205106586, 358551581, 218730442, 820317821, 718077344, 742273426, 343977802, 723940137, 91227055, 889419899, 835334285, 445942872, 874169472, 806494972, 841559090, 34902341, 936247116, 742348345, 932764662, 776531786, 136341990, 609226011, 962126351, 692609037, 492230872, 512261831, 61424189, 202712100, 557188069, 23267751, 10862209, 780311892, 698216821, 610626474, 445698906, 548927052, 791636623, 278469086, 802570473, 843652647, 214889050, 950325814, 545811188, 732525066, 799299048, 547938769, 119233118, 836166054, 515368215, 821018309, 703809789, 385697728, 474302192, 326687407, 701322950, 753939342, 860741461, 608860184, 481069405, 497217661, 107822505, 538149776, 65872865, 267685484, 630211463, 833714775, 127007356, 988488267, 704390393, 326686679, 330510067, 968474337, 860095258, 865223840, 3530159, 602833824, 943838253, 510792598, 862215682, 804647558, 57277705, 379631476, 611335785, 827032941, 500396827, 166974973, 950996383, 97277257, 336237474, 527425945, 836169765, 13569792, 45600126, 103702022, 589110361, 158793934, 917834123, 750227633, 450511448, 228174293, 380815071, 984828008, 35225572, 19924799, 316530723, 169463852, 11894443, 83625994, 27918722, 725825514, 510537357, 901592447, 560692763, 386943274, 409576331, 409681305, 19743037, 901841314, 504205848, 287987501, 95070522, 999713439, 52172335, 458657276, 716446234, 960325619, 967217606, 29400294, 323715881, 571473809, 542099425, 838958945, 826022366, 215456133, 111542899, 27057122, 264098733, 414451664, 367598279, 660361161, 317432327, 788309656, 482969647, 453723335, 307123116, 46250346, 156036134, 550671015, 501877998, 918162544, 672414507, 744250791, 519150731, 449335541, 717241257, 798831268, 772517138, 286300330, 910111510, 66350225, 850058429, 996528049, 454249733, 463645138, 33673728, 195487971, 700828817, 25012182, 447505308, 968790402, 312778627, 684898658, 698549052, 965513947, 825161447, 410399245, 428579579, 669192144, 82412074],
        vec![1, 39, 817, 12099, 141295, 1379381, 11669611, 87657665, 594899060, 695536795, 226472285, 640458905, 794561570, 378189352, 472728269, 218438573, 56516519, 255055733, 845027144, 588332091, 652544873, 575593478, 251899261, 421780632, 446749115, 397384403, 967249876, 562965804, 307548860, 910064219, 267557957, 532097834, 694036707, 378870548, 124206593, 109699395, 5415029, 722948552, 875697847, 694452268, 7553293, 132421363, 106964105, 391245927, 870340375, 243365738, 69805673, 199865008, 75486973, 171179760, 109991897, 220793643, 513746719, 106419838, 540171765, 580499245, 759007158, 982900537, 645687882, 590392656, 601803737, 221575615, 697448067, 153409333, 368742411, 593478736, 779784392, 983542304, 533669091, 167997680, 729893362, 841704349, 760614624, 47743042, 998724205, 972938209, 77600320, 536850090, 695359058, 769331095, 966134679, 528777379, 695035445, 387545073, 911151592, 242062595, 521446824, 889535341, 920252167, 112865832, 806555197, 118151259, 625842139, 701618487, 790273468, 694977537, 572862214, 473466414, 246109368, 48621359, 353657541, 554932622, 499105369, 867797665, 487345603, 842033962, 519557065, 245850790, 335288378, 782811146, 892240358, 338051309, 826545456, 41171254, 334148733, 152569170, 144665017, 941279118, 897754414, 89241104, 416864510, 41530804, 299074740, 73588196, 959211062, 109470038, 500259918, 366443802, 403320596, 183957534, 992196343, 652194487, 652679636, 980112362, 896443763, 694053263, 85474084, 793481845, 36502549, 113761902, 13660255, 295744749, 768030597, 559676644, 267907464, 329732897, 34721556, 481917917, 470669881, 496023609, 35319413, 426881953, 436183525, 539581676, 797395436, 949513087, 636400441, 684066319, 283217124, 456809507, 742722246, 708837224, 1825110, 845476655, 721485134, 509524702, 571748192, 313097600, 164720049, 83489702, 463694600, 122519767, 438333196, 350973050, 742760174, 292313656, 699166885, 733491013, 480543050, 245749577, 741817620, 207993307, 244579067, 622422144, 604751887, 899189402, 151409381, 217727618, 880477312, 214663719, 394263729, 196688383, 548030201, 726215545, 464673145, 261250632, 625458514, 838784252, 982491280, 700533618, 585918514, 160625577, 639912412, 329107337, 639996475, 820595096, 822718095, 278815123, 496262265, 918547360, 8027724, 726754416, 823448457, 260321413, 863184482, 650858805, 276099402, 685460415, 954079520, 733965175, 676833996, 368637623, 143549481, 304621819, 472579474, 749596748, 116386311, 410243381, 633945382, 411647917, 177570608, 616578162, 767744928, 61290651, 523112125, 276619822, 15151789, 253528389, 167816966, 891846580, 541892511, 341041750, 391023167, 293092921, 243156326, 622723871, 473135257, 726189187, 379573236, 555335821, 257038714, 482079083, 723871307, 606515981, 65251208, 632383753, 147352575, 594192641, 924833549, 483314326, 808069004, 770319259, 427864560, 25642674, 464671587, 569308215, 637300329, 923466624, 23057035, 86870702, 983746124, 846059215, 574808201, 554549209, 446310553, 959681948, 778636627, 211592095, 516682914, 291911580, 587928798, 427680003, 894209596, 866648165, 679666232, 460484096, 854394115, 982195268, 822495481, 835383529, 431162040, 830468499, 195346596, 57036658, 866149457, 860543178, 818146210, 279107618, 892401239, 225036974, 868558986, 685134666, 744469605, 156127522, 187537334, 788919638, 909025900, 672187019, 217419201, 384265406, 616374282, 378322214, 141913342, 501653295, 461070473, 25985020, 589549638, 109433868, 888240019, 931367280, 762349235, 234613827, 765084315, 611038359, 758764450, 286873014, 382512476, 382119459, 20294058, 943700532, 211933192, 58390954, 180966724, 929698288, 805610393, 509211182, 866583662, 775212548, 88368846, 726939816, 185342247, 229877142, 705155204, 200856219, 36832958, 610458570, 660966337, 749737121, 592806565, 894272325, 480779946, 649154472, 88597955, 74084666, 744113332, 528684751, 282107891, 100372245, 756922141, 58776739, 981772435, 924634098, 951039927, 397719622, 577729727, 762973087, 736969640, 674672356, 297937804, 986319572, 149411109, 496025335, 118765897, 173573997, 13186371, 696131467, 139811703, 497652080, 238358226, 252091863, 126575962, 416549513, 112043953, 769546766, 210139961, 218718185, 975953506, 930028805, 845629302, 57030776, 852433935, 836915594, 400219298, 622051773, 829969111, 114603161, 10751254, 909008878, 579282117, 214070865, 563200757],
        vec![1, 40, 858, 12996, 155108, 1546584, 13357338, 102391268, 708914679, 491589996, 307979410, 602522471, 317222127, 290284759, 54099411, 989042041, 349750818, 106531062, 706143382, 63807262, 819412921, 144007031, 937903432, 671633208, 144280187, 535961584, 391683158, 665684992, 173615217, 173957993, 353557533, 689224661, 70346145, 249590014, 418977958, 826283746, 394602103, 916349862, 513826761, 491750575, 183159109, 757685121, 418341803, 274891227, 642914114, 790796259, 588464975, 740365449, 551222753, 10565934, 35820801, 515689568, 211177017, 828019707, 68961130, 155306993, 295844962, 698696703, 264483577, 967049520, 615265667, 559761896, 719262960, 509462378, 575657367, 591920899, 676732702, 723371825, 327050158, 311506131, 94078284, 608080285, 992236405, 137506625, 399044419, 458634324, 553334522, 801149022, 685520978, 446537546, 993927587, 293142441, 349812890, 364132070, 129851348, 857298051, 877404263, 877505804, 63808796, 43779853, 597054006, 757518688, 847719064, 814336009, 295491019, 566317327, 427355879, 99632937, 271930495, 211594531, 907085661, 370381473, 40651392, 893659649, 363630034, 486697292, 957988008, 762036357, 927839193, 855832860, 336383816, 307639758, 266751066, 682795763, 757933830, 702637096, 416587519, 241670221, 803239702, 991067388, 753770489, 69318095, 379601638, 829408102, 918333643, 833524181, 647446668, 999853061, 600717076, 736359930, 166694847, 912637361, 883248816, 334184966, 360770954, 907814459, 571070899, 760625736, 543003305, 12232839, 27415041, 235755079, 155935992, 895456358, 299525687, 387663753, 430722193, 845849975, 389897647, 157165043, 232374231, 709459451, 819494807, 873294798, 982307907, 723241456, 529916420, 190269000, 832006535, 157577121, 119818595, 751958343, 818604698, 923214476, 455357809, 664208514, 204222119, 358021985, 507909159, 532713722, 447934290, 550255949, 9030523, 204809569, 704696131, 798537153, 779574805, 146334295, 422444856, 763243391, 968318292, 409596303, 730176788, 661449533, 145680243, 291092743, 406566554, 840725280, 859336604, 385485264, 540592314, 491573347, 430591599, 799102625, 349645352, 953856191, 685505744, 968883032, 548153198, 991972402, 298640488, 335784052, 560792641, 200482497, 534424478, 835919822, 256133832, 789502694, 815463653, 367192054, 711296060, 505894941, 749371649, 586599852, 478956964, 771301542, 936596369, 641013477, 895880622, 275251735, 709512313, 675062513, 900057226, 864601515, 604121575, 213439255, 718556713, 352300658, 293209273, 62461535, 212741657, 925233457, 601757735, 357273411, 900952265, 337965737, 654516053, 138964736, 683012438, 388413281, 151113816, 328964247, 191920444, 84786019, 179152386, 346561188, 643354711, 718267295, 169193229, 252223726, 887596939, 657097686, 142103925, 40078284, 150004901, 459569297, 459199105, 789641065, 6481222, 858687076, 375816137, 147145108, 520309635, 748217920, 667457550, 716254093, 186260954, 725808394, 626037945, 743543562, 764478177, 601933842, 797462265, 777370200, 654651513, 156072819, 707272486, 178868661, 27986290, 925976600, 457000898, 540704905, 843382395, 769084631, 760118502, 476552208, 749317409, 710185045, 964800796, 516878606, 266237510, 913933501, 813693982, 336046538, 762072594, 997287607, 756174558, 615699332, 325935068, 478725181, 294206110, 71125626, 862744505, 369229533, 687983312, 908265361, 496504119, 960935105, 69879109, 315010091, 778995602, 757128123, 249975621, 699329744, 984761141, 255696873, 966070938, 214893935, 551564463, 316442626, 532269369, 314110968, 128028415, 969165598, 561496103, 817486578, 282697706, 480617072, 509205119, 834540584, 277705122, 660874354, 778117470, 366056531, 831243822, 903068403, 672944646, 441340373, 340680954, 617276976, 849516577, 560088434, 230800586, 10428026, 372559113, 922230949, 889642650, 244184042, 533938488, 841639506, 817920213, 336934324, 44823033, 565545678, 701086145, 241957483, 114182239, 850726147, 526783422, 115816117, 835376982, 659266467, 815849396, 168028335, 255187925, 748491938, 622185783, 663040863, 743392515, 163408177, 383060357, 31556416, 794030948, 934245344, 258437764, 379321408, 40236316, 660469577, 655665845, 690942361, 375378322, 568352979, 602028119, 317437606, 657543398, 100015852, 252684947, 481051042, 964341166, 522946308, 280791483, 467949044, 475945690, 972019230, 462068105, 580258224, 819125286, 65219413, 675919204, 938373431, 246074242, 416112669, 990084376, 992206586, 174382581, 694468435, 670357482, 52707698, 430228891, 194064984, 374269653, 873105421, 89789806, 360326019, 422866288, 247972613, 990139142, 766813630, 25619403, 929658745, 91230876],
        vec![1, 41, 900, 13936, 169902, 1729478, 15241768, 119176344, 841399673, 434809990, 446105964, 492649140, 758977149, 206041682, 323715565, 660084286, 595902939, 912996958, 734408694, 639760787, 253066665, 208103163, 518638879, 141246298, 316067064, 932295902, 638352197, 835906694, 518593201, 772224592, 710767801, 155069328, 87760296, 888628863, 85616127, 159719113, 852745152, 116208329, 603162784, 598162586, 214665773, 928212607, 364268988, 422947444, 91651894, 294508512, 306449339, 29129368, 721764444, 23720919, 155935808, 134434641, 906918132, 581645037, 673925534, 656820458, 712140580, 940311261, 639783029, 193680127, 625191701, 485391283, 454129733, 912047676, 531795443, 151893083, 16212124, 506754047, 491882623, 143293012, 25311790, 265858487, 730580376, 281408346, 313354998, 904477185, 246774679, 76212745, 790588368, 952519623, 156839403, 194467618, 872887052, 91963369, 534129628, 238356180, 632320800, 58443419, 722943306, 618550091, 33518175, 519583410, 960079192, 538023159, 305123951, 486152058, 294482726, 518323725, 455607677, 182021187, 748135143, 512410493, 35362801, 719659644, 317014598, 528329960, 583008290, 443175574, 659178079, 174647583, 349497845, 577399146, 818913619, 271472027, 656817275, 494680790, 969710982, 229444476, 267631925, 175671131, 35511369, 58752774, 135202754, 944159958, 464206230, 475819996, 314325811, 754861491, 276808552, 810159244, 91192489, 626570800, 590621471, 514780234, 305537247, 801654104, 149383516, 787215362, 114530579, 859617326, 613074050, 468568467, 919259772, 617744284, 340905322, 985953212, 372028816, 217079653, 938494776, 284906842, 769978385, 515786223, 285120775, 375534381, 675385916, 665832700, 133450834, 3874364, 408375526, 770616302, 276273159, 413928636, 723794836, 198571707, 678091222, 296508406, 529916658, 588863591, 413257244, 498474249, 915935032, 120501359, 836927142, 230121084, 774509032, 870826787, 489996192, 917057075, 196187219, 383821852, 922336284, 22274995, 748507616, 607632780, 183109949, 339998525, 507933598, 698781318, 498085612, 803731847, 473820207, 901546035, 302928184, 865394080, 114078163, 2199878, 779942965, 594445523, 91527221, 272107811, 718335802, 365412741, 52329171, 414520032, 494974650, 300177708, 811610962, 146810674, 337728819, 506402762, 403329973, 694340600, 766854981, 757139989, 188368338, 788752320, 918847437, 928046733, 527551285, 479184799, 517252899, 712149490, 791491255, 238449676, 667119615, 757940899, 445679476, 734062646, 326185889, 40504124, 623294475, 807102585, 697275776, 960233124, 90479243, 277423126, 459856976, 523164613, 283246190, 353589088, 214300387, 783487356, 692462518, 267488040, 851918218, 799153667, 810257248, 109085516, 633189413, 670646041, 913414538, 526057886, 701571781, 823895555, 366072317, 141394361, 832809290, 464577360, 305577012, 512815120, 121404516, 195457318, 321946163, 309097012, 239601477, 94799504, 314416433, 43085740, 639634392, 892727867, 559091131, 668748148, 422889784, 711508368, 676630033, 634668710, 364293294, 844937242, 751071408, 322260215, 891789141, 187899827, 511558264, 521391391, 670781806, 509672700, 51147255, 62331255, 681097643, 668432081, 698715101, 46454740, 726474418, 934462337, 72103891, 408373632, 957100449, 670661469, 786800623, 834620545, 287400489, 490496888, 497846381, 189806313, 912940390, 809020495, 703284720, 835793884, 605744360, 923348658, 214377202, 697918809, 343995053, 445012242, 544883273, 475774494, 73159748, 664916820, 945806189, 388033609, 184443581, 891139166, 132967061, 662232592, 630310273, 296941879, 926467100, 732662520, 755030683, 373067237, 200501225, 132039597, 621016442, 864116597, 199168443, 229224627, 19895297, 392227721, 512572983, 888183257, 954225811, 362992884, 408318299, 664465052, 828120392, 703374891, 61248349, 16358204, 241119413, 30565637, 838212406, 921697699, 543334430, 89858526, 273185879, 355471309, 304528048, 507574008, 476038937, 789196651, 57644735, 932966132, 292240565, 284284800, 198355642, 844613937, 375170024, 881957600, 108981244, 644631978, 730251746, 563646094, 15703371, 891969119, 462467018, 842418885, 184776107, 20489508, 525173823, 93913531, 199936707, 49296883, 500271791, 9386940, 42793104, 102301079, 299925062, 242848544, 157270543, 567750735, 512260765, 540910896, 473863432, 123756576, 867793612, 940752336, 189701376, 338838501, 163690216, 120916067, 790468763, 680974009, 939542025, 299064055, 752326705, 668302564, 775312490, 929999123, 713601128, 593704708, 595301628, 539445680, 220384571, 492539730, 572951883, 264745653, 946510661, 751486844, 372815432, 445849920, 481560920, 887629330, 46438187, 433046906, 550746520, 68280122, 549536967, 98170304, 942092421, 657076175, 85959544, 736296914, 244774210, 196059783, 968298850, 183375217, 810099519, 413635020, 636120983, 396309504, 740465895, 371532101],
        vec![1, 42, 943, 14920, 185722, 1929132, 17340642, 138243024, 994832181, 548192008, 829424358, 702470585, 488681655, 275370643, 835638795, 810867407, 286977068, 950047225, 83539435, 44629372, 288790619, 507410843, 264046736, 483012816, 672138691, 875194556, 651203850, 66911617, 918075656, 674825734, 94581776, 415282344, 303997379, 819537616, 622429217, 698967413, 751254549, 420414807, 687830513, 601402264, 434289505, 724948167, 754889253, 808542135, 995391960, 178813332, 724416372, 177739106, 814105099, 753597104, 45856871, 272275296, 786414287, 511285559, 160720229, 317562390, 790336119, 868224061, 359611251, 78736463, 773457035, 927802445, 421722380, 116775238, 364696053, 502866895, 626441652, 490807991, 713262576, 797949369, 598695934, 260170588, 82830001, 494545919, 272206045, 443643728, 598266021, 33015507, 884148700, 307476402, 959867411, 216334812, 800291904, 985570368, 488188448, 107147695, 538136243, 662412600, 979298525, 134498654, 226734918, 727004323, 749341953, 119616289, 344235011, 179701806, 771727176, 867138213, 462181714, 886155872, 120844409, 637609736, 732957723, 950929297, 917858187, 787591285, 658307576, 752393246, 363474545, 410621001, 994736846, 177814531, 780475306, 862888709, 592093607, 579502147, 557845688, 288775481, 603183203, 577960148, 788283409, 673824051, 683888139, 877184660, 633236685, 114600324, 443874806, 243845462, 737247494, 816215602, 301818289, 678209727, 613605938, 858234475, 818583083, 638002191, 955539556, 166659792, 402119583, 136117938, 121601666, 755992562, 47984728, 295575049, 499852111, 307179145, 332974068, 315732357, 716712867, 640162541, 867854182, 934376752, 313718034, 59903781, 946384843, 119557570, 525136020, 151571916, 798992199, 641098837, 260839275, 993458171, 824535499, 355644177, 761912070, 816737774, 16159145, 269418274, 606453921, 360745230, 8968332, 697762673, 987763777, 660889863, 735951723, 644168107, 694447061, 112348183, 530007620, 3042837, 764274326, 848173528, 194620935, 635775962, 259196720, 713828904, 940082694, 457694335, 838811079, 742877821, 825043434, 999682813, 323541591, 50872352, 337477908, 513975090, 485543671, 991738379, 437900643, 771900426, 686428428, 563411325, 914169111, 935692665, 43568184, 490175371, 749564693, 101137943, 245839802, 603981104, 626386341, 386920859, 413292672, 913439917, 70347116, 434898910, 144090153, 824132212, 891175519, 132402569, 347193520, 969072546, 16729602, 608672301, 618817500, 911982521, 688615529, 732174336, 500282116, 497352932, 456415575, 878875953, 316115544, 915703538, 598465482, 596140294, 730305232, 164832432, 897815573, 166896959, 324516472, 764718824, 566396641, 914517008, 874306816, 779763109, 852306547, 611269114, 292511571, 915381300, 758955270, 257373679, 74625589, 121789415, 230596845, 205840454, 916544901, 23902587, 416402779, 293269031, 510816400, 975368660, 955188220, 72244504, 561311434, 137072009, 127537010, 860723336, 883260674, 394382836, 913512596, 497775666, 206616201, 483790701, 11643758, 543373789, 107216374, 536706614, 345207484, 197739695, 416959310, 802020491, 883579389, 155472766, 707726533, 878636875, 137339984, 387604391, 170286771, 862464509, 93116703, 698306089, 277231574, 157624181, 518482505, 545923209, 301838767, 429107456, 65466197, 400869145, 603396151, 201146053, 29560436, 908247428, 740900666, 645622178, 468181946, 182006817, 585006092, 39427009, 901513909, 575103140, 643739693, 969005418, 413112711, 121940507, 949419798, 274176335, 533655948, 73448571, 447893873, 303200166, 406062958, 327948494, 399154885, 680966803, 676784794, 346165530, 118434942, 634041854, 219847494, 927409557, 731595298, 204066166, 484721091, 397391612, 62697528, 613046235, 363210072, 588627148, 359818291, 176675393, 710790103, 31891420, 193284227, 13322649, 80677012, 364175866, 156203486, 303397217, 540753075, 969185318, 762928705, 479974322, 873609278, 714679223, 243389411, 893917661, 730412727, 540295939, 380888528, 199480073, 111615382, 501213077, 699982545, 83674978, 340471893, 589623231, 135448371, 354059110, 416125008, 490338358, 869847423, 644581498, 153365962, 261322947, 680966984, 400282844, 542955010, 604680600, 412088220, 680278649, 139286485, 860834305, 469429775, 280658323, 253030904, 2560916, 10309871, 297479762, 823144855, 871982081, 47058346, 963847165, 382927224, 356584190, 324565827, 306141977, 910279795, 453817674, 601981427, 979339306, 222338413, 904561649, 382529080, 408856660, 854658577, 411827225, 670817056, 827144476, 223389693, 471934610, 930635535, 587441381, 722797748, 95690794, 663628478, 287716698, 646651719, 701670514, 288321331, 90367689, 303151955, 540716833, 449495113, 614473847, 768187147, 779428778, 859329178, 317839203, 24311574, 208713726, 534909824, 569617669, 779723332, 951823587, 262620278, 508684571, 644816282, 124674019, 369884532, 146396384, 993989514, 828097325, 353947367, 356630001, 483119775, 36683277, 829372562, 480348153, 416969202, 237164413, 917166508, 673670902, 955993972, 550159722, 115253791, 571208381, 883450110, 234414978, 338605160, 465632072, 975880238],
        vec![1, 43, 987, 15949, 202614, 2146662, 19672862, 159841410, 171958174, 857707214, 674952199, 863564473, 694487987, 218927913, 150857334, 64522123, 242512102, 726888439, 233627107, 811786714, 114239005, 343074532, 372330107, 720689358, 467711835, 904517093, 48140523, 445520536, 151023837, 477389409, 167654505, 524330326, 826025786, 750662832, 873751815, 63739722, 191556854, 667326112, 50500515, 441625511, 782830742, 400734038, 564497630, 921910383, 845548941, 368028935, 749018447, 103585045, 796556849, 628596101, 868979841, 539520158, 627354569, 90231323, 417433082, 56768496, 355579497, 422451590, 886349503, 72956900, 803725461, 415871073, 683643384, 621063238, 193330057, 325926450, 277754812, 24871409, 448472012, 886190243, 823962291, 441987145, 894908057, 837390023, 862747763, 91512877, 722912649, 93349481, 545810047, 913016979, 515556016, 298546360, 734212089, 844284728, 136068973, 71028614, 122223407, 751306630, 44843394, 423748616, 386401231, 812571458, 811253207, 883210298, 108253088, 777750730, 94398075, 357510258, 341016668, 444595182, 421469474, 846006439, 697364303, 430219357, 145159, 329923811, 555736286, 145037472, 50858159, 758063180, 409311835, 199515197, 849732459, 429458586, 110831608, 601311986, 405029768, 899721594, 362036575, 3616348, 447767827, 718164293, 455022502, 154627334, 632024645, 923207902, 841801838, 418932384, 595460287, 460605434, 188513457, 767682601, 51793196, 194981425, 929803954, 504733978, 22197692, 870666331, 333136663, 819520200, 530915500, 599537526, 53266589, 48676597, 387019415, 413134249, 89916173, 988538195, 741237674, 580557472, 340811443, 13472882, 840030352, 781975641, 296220934, 702357371, 942050407, 935085214, 845987731, 799577627, 872670633, 692587304, 440284632, 702895036, 10589510, 109084537, 901549736, 680965380, 523560865, 14608855, 766098800, 955736031, 229070295, 918139336, 762087315, 15060087, 769624318, 210516326, 269537431, 932448778, 651446512, 367308406, 624037144, 927670291, 415521073, 854675140, 947034643, 395133007, 858104556, 792426709, 918444166, 282314711, 96653546, 423079321, 469451942, 792999037, 308400615, 330587501, 691818222, 53917678, 568461122, 362577365, 775464857, 904714011, 845440210, 795470521, 568880508, 666239878, 183860147, 125507811, 545400921, 401495311, 3467092, 430876347, 332849310, 96436924, 957680475, 836934713, 150232592, 891109199, 995835861, 145792868, 255284669, 853681633, 801676454, 45857933, 127560794, 137690320, 534209092, 436059291, 890838261, 134212816, 302504982, 936257832, 761720727, 269396963, 28197218, 59083210, 947207164, 442972791, 384169121, 488722025, 351406087, 443097712, 82956552, 698141640, 145942108, 188889308, 734290094, 387705377, 912805029, 973822420, 47485510, 507370861, 221674431, 786661915, 91335607, 856760661, 173031704, 864904090, 599152735, 495185408, 938099393, 556362344, 990758140, 995900803, 254599934, 462199704, 5008078, 665636661, 527028350, 642386127, 1829553, 551952980, 424017355, 108488740, 701380336, 806666866, 700141562, 59441909, 362171728, 894757457, 445400929, 773238426, 127546419, 723395394, 338826564, 332919619, 340737249, 850054615, 184058121, 13063831, 278558952, 698063140, 498777528, 72607237, 345269132, 902279995, 183690503, 772520236, 708689187, 233896476, 458831695, 230994551, 41124197, 206351350, 689101399, 262700029, 620939252, 892377787, 428085255, 694339277, 213848040, 916329377, 192795757, 474268014, 561285670, 220016093, 638297144, 193877561, 647642810, 64716523, 5417153, 709160560, 438820650, 471896153, 456049785, 424945489, 102312939, 179871925, 155527933, 66018018, 519349428, 575834851, 366155295, 196027859, 709388961, 444696414, 108229719, 111474967, 169464130, 765045351, 916818004, 674916990, 958919968, 932259128, 849009441, 829390390, 846317162, 253991616, 482990034, 163822353, 775754269, 532037321, 49173712, 212326050, 301906174, 678424573, 534302771, 375782334, 160287870, 855370313, 341617592, 25457804, 708941176, 246832732, 903916100, 546588049, 96029971, 706821232, 940560978, 101534792, 337492719, 856837601, 613769045, 707646199, 812028723, 616833643, 679800396, 535428679, 224426630, 413895724, 784683428, 431644219, 111092914, 661756720, 639659700, 41894591, 68359952, 43802473, 952730000, 823133424, 376059765, 707785553, 822330735, 771301262, 948220958, 908479296, 864547297, 515908783, 27167717, 175015260, 401476125, 721945851, 298498970, 707819205, 838011772, 889483594, 356594984, 693435347, 967781679, 401435494, 355846180, 333596320, 628919505, 303558980, 984974994, 113643042, 89409518, 612893129, 122412730, 114900098, 810658251, 247580260, 945287301, 609126629, 492005778, 772356444, 361927818, 440145503, 858752994, 174471327, 210890472, 769016792, 638211867, 546015263, 377533141, 892710683, 705066724, 412035898, 913706912, 989583745, 102815427, 296051463, 435828877, 627348761, 994079761, 369313875, 909339708, 172995194, 816793393, 474860389, 821690532, 962160124, 246051373, 970475428, 561698902, 165844443, 708639335, 918973613, 861542417, 207950600, 197794802, 563223285, 448456804, 787570186, 926930606, 566070711, 279041721, 162328562, 287318056, 191225488, 14318341, 585550504, 409974535, 697728497, 891226405, 200433586, 381575055, 638337683, 483277973, 755030264, 867834356, 962849947, 821535631],
        vec![1, 44, 1032, 17024, 220625, 2383232, 22258540, 184242832, 375813872, 392612893, 231706087, 882424931, 687132034, 689650073, 577977876, 303878988, 24310937, 406963663, 625468735, 582435950, 41660062, 421950986, 98962940, 938709884, 758565048, 969234571, 703952131, 900436492, 658647225, 285611947, 399326780, 419454732, 205387170, 983950227, 49990302, 189001672, 62673927, 586296391, 184361166, 506353667, 438069708, 256171907, 825943859, 951340167, 368115756, 522855639, 198647246, 263328246, 450011807, 434855284, 725807775, 648411666, 18383140, 128787399, 387148373, 905324825, 158891954, 656234845, 213026076, 490012707, 365468167, 200221292, 298615515, 290107567, 35072337, 317672326, 60118064, 676291945, 898619095, 494511021, 35193707, 681989460, 255539191, 6318676, 181981289, 309123618, 769843578, 942743189, 29734288, 954472400, 463236670, 747980714, 175643037, 260101113, 77874147, 589524374, 710018290, 567729062, 854908844, 767838566, 521233813, 535397022, 395450772, 519565978, 430844324, 691804767, 750969410, 915664434, 335442962, 327801393, 599337662, 151524696, 372580414, 756807473, 202845724, 578628778, 324772867, 495203100, 594805038, 176866440, 134364432, 797477913, 981614510, 128692174, 938852792, 42148884, 122641852, 370944239, 473851910, 935488807, 532851475, 689984371, 438315593, 696398812, 66001022, 428174065, 54501471, 80878480, 666016821, 47295976, 813797397, 317765605, 714997505, 258919731, 82884010, 661027522, 582655484, 361252385, 24311003, 432884688, 368733632, 23821090, 792526029, 846601436, 536812192, 29313630, 382435159, 426147993, 517181759, 645690342, 270896281, 775661220, 283600768, 240876557, 135665693, 104458079, 616729602, 497103691, 828815240, 86098789, 998656307, 754065783, 488969594, 91503702, 52278308, 883359011, 733253122, 448869387, 985543203, 116773170, 582006344, 860482711, 481797421, 498040658, 240829616, 836032529, 195942841, 508465042, 970760583, 262117458, 515914406, 802808161, 784332475, 374122343, 146224696, 841597534, 586439935, 244148601, 788204315, 767547799, 776362337, 510076278, 624681830, 364806405, 36907700, 539421266, 800828005, 512242954, 899834647, 163376162, 50294413, 18654970, 84289561, 55576943, 421249957, 34930346, 752291330, 162276973, 265235612, 648593820, 174309283, 472188614, 715911113, 367773012, 121970433, 269868616, 883985007, 980070897, 514347496, 412293057, 574601560, 116830355, 45453500, 562859501, 189078677, 827602581, 712444490, 316586780, 733065979, 840949184, 60074648, 135398686, 424428452, 321968689, 410040315, 273128858, 471407472, 574966766, 873880166, 875045586, 51088331, 163730111, 878321231, 726127318, 966070068, 992549896, 363335253, 89848987, 723352311, 66759579, 406269326, 227087300, 150259572, 36586234, 121181736, 671327424, 433664784, 948164313, 657988535, 451431758, 352880293, 341991927, 179834471, 17796695, 709446365, 576526708, 534876965, 620591563, 749402589, 628280366, 213414310, 982746106, 780180633, 458647121, 527146575, 210950823, 363805011, 571210392, 912463620, 153315485, 532024632, 427468951, 230879114, 869803861, 964025520, 480715223, 895116735, 766188327, 419338263, 475074013, 158183698, 899486620, 551866464, 830407504, 385674668, 305150124, 25769566, 438519248, 46473036, 427624180, 723264512, 651472006, 264633252, 457374493, 476392005, 982968243, 594462543, 141658727, 489344824, 433530156, 442633667, 193279091, 506366676, 618868695, 731227096, 902261819, 499005142, 38842574, 647293009, 470120821, 963932040, 826530559, 427769181, 52186234, 243569284, 806914289, 77294303, 605077946, 125786816, 193185124, 669741115, 146483601, 421911450, 244025223, 607708016, 920909811, 503255382, 458139691, 962827176, 614853461, 60315827, 350564197, 429760397, 252570002, 854719144, 336843776, 342192419, 596659989, 924243516, 172320579, 980212083, 387574794, 749118912, 796421442, 338721201, 731277700, 423355068, 842226704, 398877706, 643899462, 276311394, 413568057, 530987554, 558156380, 825270018, 71652153, 764304967, 575174245, 41877959, 189656159, 729954858, 472722511, 759829544, 285982254, 921037034, 543320666, 873711613, 829723375, 146980729, 88768980, 242470712, 9284436, 325379730, 426922557, 253585643, 473459335, 496125795, 212116723, 579959160, 525505189, 681915634, 797942363, 691505794, 454823298, 342255990, 994255712, 284908161, 275004161, 935102263, 472107098, 948357256, 856671615, 528973823, 649773881, 963952149, 308388016, 911396221, 251193820, 721175020, 199750213, 907595892, 491208059, 66513541, 911357998, 28185931, 408941602, 745821213, 601730782, 8869191, 260152446, 11616084, 492782894, 282010506, 115926945, 586669273, 760307966, 135350671, 730510115, 701832702, 230080848, 284697593, 182609947, 968668397, 822892958, 20031466, 582030222, 113170973, 44631330, 117449096, 742186715, 393019551, 475653487, 44400405, 854169605, 417464027, 638137059, 767027912, 156446839, 993857936, 340495049, 620457258, 138844665, 409760846, 178352112, 82788960, 388732194, 649306589, 798058368, 662337136, 564354859, 463324080, 651997437, 151329929, 798760314, 140393196, 82249686, 534814725, 624568021, 130746531, 950081340, 74895509, 582830295, 80288213, 896322580, 930247101, 961634195, 343840503, 151542664, 791653321, 891526646, 512046490, 292522561, 321986893, 483787584, 926080170, 410378864, 504638099, 532986681, 138953386, 701001827, 64586773, 800287681, 592917926, 845148767, 612516645, 103437292, 360749745, 802262044, 905182790, 741928176, 827192105, 608668686, 275550867, 759837767, 768468707, 652063776, 969103143],
        vec![1, 45, 1078, 18146, 239803, 2640055, 25119048, 211741156, 609749448, 185787670, 784612981, 979654374, 245960280, 15201333, 958496287, 21110097, 315107827, 742613444, 350112648, 551346765, 22689059, 646342016, 52427180, 113726997, 20972491, 531552248, 493279562, 92962089, 319571072, 658193556, 921146440, 975234478, 32484025, 175484024, 620442122, 566033382, 228886883, 301912152, 137109958, 37427138, 531183271, 684452057, 239066445, 806400806, 345167706, 766401402, 659593100, 342864185, 793254425, 754419464, 829307575, 253460669, 788296808, 455700810, 203460090, 299960617, 672027544, 662169751, 130171479, 226661975, 16040291, 641167104, 11608362, 92735361, 828424038, 151425031, 757058935, 838944903, 705030989, 271605017, 832315720, 525711262, 695893337, 524834613, 616761109, 89325780, 498691877, 390082387, 413410547, 86170624, 733987779, 857386717, 121183471, 378540433, 791481061, 602874536, 895775257, 706223069, 9499, 916233199, 610175789, 305910126, 402086898, 380865911, 987929263, 784720236, 752249361, 533065111, 750214951, 512527924, 120069833, 497034065, 691332267, 542878776, 324018841, 841280375, 368737196, 213532423, 972352910, 856518833, 695976280, 832491001, 482258020, 288928023, 37469870, 669147935, 728824530, 312167670, 98462828, 664815478, 37466991, 488559701, 805407681, 555656112, 449333572, 115257333, 422614443, 217564969, 709154128, 523463461, 73425486, 892488653, 72758100, 139084611, 245397266, 356349189, 258341975, 374070936, 726599734, 907199192, 145474167, 868900328, 80767170, 435742131, 604761267, 550372021, 238314098, 858506407, 406280874, 734533546, 294613351, 569709112, 578499728, 811514468, 971780315, 806793934, 105431100, 109183449, 48863833, 577768093, 679710969, 415227663, 41263734, 575857153, 381654592, 178237376, 962188807, 96401085, 816699360, 379978, 698529453, 815682387, 657011537, 324418972, 693645417, 573047105, 308103161, 882958960, 454854080, 319280881, 638681315, 366562235, 558670399, 767575020, 418970310, 599121706, 533764150, 589341596, 935247125, 342450103, 752510984, 17885861, 270962366, 936052758, 754048953, 578853463, 395299411, 975776432, 660809842, 714104917, 664542262, 888472526, 460099640, 981638523, 92874960, 177231620, 389704303, 815325394, 892076514, 810821143, 435904186, 382196425, 459031152, 355917826, 128881343, 657597142, 768648132, 489510758, 615223177, 785945817, 514595120, 566588750, 607013232, 187911920, 428934627, 690400146, 385480557, 274884476, 214574226, 202705516, 78809920, 768678876, 104566183, 54811645, 783466377, 78714677, 225394661, 571378521, 194681502, 425310485, 768219090, 304793231, 206900396, 615627160, 652872143, 605935098, 888495311, 608958308, 684600222, 150382009, 670451269, 632074742, 29926906, 676412361, 727588975, 541140282, 152873820, 396851079, 644404346, 44361987, 675992732, 795525664, 898044746, 408945421, 518637916, 428148139, 754863856, 398182352, 901207212, 713356422, 978366083, 314876385, 700685480, 450639991, 507197672, 750335365, 694787156, 659670168, 536065922, 58255852, 874808151, 601680063, 300562698, 308983506, 144763409, 291800793, 77526020, 485403753, 904665596, 240987930, 592380858, 131116194, 318805303, 40941643, 253699630, 655235690, 431599614, 508389196, 766960976, 64307752, 83604788, 642165815, 298107337, 143184667, 782909601, 97135064, 800759539, 594114128, 462420032, 946857620, 578998109, 847963761, 556321528, 57391815, 681855904, 181815656, 486333346, 837072759, 524567487, 328595763, 549915998, 810586503, 921107919, 625157836, 520890292, 832156974, 502972509, 844559735, 189855766, 821823028, 625190873, 310510259, 495827691, 683011136, 462720297, 218315456, 558392392, 789434995, 973556645, 730884239, 996176654, 617108310, 869866261, 672230385, 823462275, 454316955, 569646417, 836576125, 486906178, 189726176, 941091111, 447563926, 715506888, 259006307, 152570437, 178255829, 705545293, 756368978, 655390691, 445318929, 656847742, 582354283, 964611397, 757172000, 601301680, 424348696, 51484783, 19240319, 282677827, 308226295, 848392338, 155829926, 371112122, 224524783, 972970693, 890401898, 186586738, 229535528, 744395297, 436751188, 287103606, 767393594, 221149011, 725319915, 148703291, 142739608, 565503173, 66967587, 579759051, 568848401, 146971072, 400042251, 42796974, 930117091, 516575412, 958322295, 49672443, 25502320, 669481138, 837449618, 7837933, 569472200, 125364493, 253977071, 938687542, 347213905, 923213402, 374713215, 103889249, 423021360, 42560340, 446498368, 893011213, 263552847, 473020638, 594960497, 638188472, 306243047, 631678307, 460262893, 114330448, 196301356, 120279822, 408786998, 213927614, 687965452, 221650209, 761159253, 159653422, 237951119, 705996510, 183076481, 962207888, 939920456, 729428244, 527536009, 933629825, 48104537, 426892607, 222940406, 156477133, 294062878, 856995315, 562470362, 935041969, 210948751, 968306167, 842365144, 520781012, 542464204, 753086923, 742421303, 62000597, 644679235, 71406991, 633199433, 272647461, 452692051, 412108892, 971466694, 51102980, 982720545, 17172841, 800141833, 835541670, 112517201, 389287762, 451060806, 667438631, 372888210, 71363616, 925222882, 974951293, 516878304, 717488009, 957226897, 42671831, 558776576, 623171604, 305500795, 631070922, 102790598, 482941055, 578335399, 805101814, 173951677, 379242816, 368922629, 730730546, 873191134, 654555294, 282999571, 122452789, 92227034, 843713012, 807240125, 801145367, 399481174, 81195926, 292593849, 487745170, 77737545, 120468361, 275563695, 294725580, 329691567, 323060707, 128192468, 940264172, 278390124, 237020514, 693096287, 868976326, 357620751, 777387506, 600499325, 283061659, 552760619, 551343042, 374674126, 67456147, 355451755, 309520773, 188033652, 438124708, 963234900, 524570431, 966112342, 609641134, 592345761],
        vec![1, 46, 1125, 19316, 260197, 2918394, 28277069, 242654144, 877454212, 274093151, 658806941, 733787098, 12686768, 373279778, 972151771, 700803085, 323660829, 529034010, 15342046, 14519348, 617205005, 151932388, 986173050, 673700068, 544467810, 964286681, 515278420, 556139518, 340574896, 558301369, 203169010, 995039572, 456888812, 641435231, 165153057, 140522292, 660622205, 195293121, 536816710, 963078287, 7389104, 204944482, 754195920, 468292992, 782743724, 983001140, 866703245, 496885028, 44229335, 385957410, 278539952, 468949573, 420982388, 313452346, 869856814, 98935497, 204399132, 112520568, 660616311, 229799510, 228233497, 492491671, 631417681, 54933646, 149425728, 621332861, 339088208, 164640489, 629238436, 824895721, 154091091, 876001533, 408513031, 998443240, 581987593, 639413342, 564182232, 919538600, 946772636, 882410774, 972663920, 656083562, 92818, 266781815, 775781699, 746031288, 222736672, 245153398, 853395663, 612580130, 998160370, 644539418, 268757618, 522753001, 961290581, 775849265, 167666621, 207332842, 699178165, 754169098, 895892786, 110804927, 209717022, 224332021, 783584762, 168756823, 846734143, 820517435, 567375827, 214226237, 514413130, 94334242, 56417678, 452070622, 302779049, 643793464, 45275321, 465081583, 721848633, 905142006, 304646178, 594655979, 909007937, 734286949, 886228757, 175346016, 613908391, 543890160, 182181133, 880150750, 840065256, 833202286, 948664835, 99995047, 986587901, 143761895, 873393215, 472341142, 369663112, 813013714, 860504625, 731747262, 545041246, 583231233, 427381591, 37913038, 537312918, 219404202, 592801409, 727962123, 878247573, 121527391, 62101177, 856133295, 688561557, 4927109, 639161755, 216890863, 944378755, 396352437, 878653962, 905668778, 386987830, 935008847, 899701147, 100650401, 955831377, 336099358, 325599961, 655390214, 368725260, 410912881, 868037904, 255016544, 51552711, 320078126, 868474642, 332377928, 241406268, 35418479, 170587950, 775390874, 598922434, 616742075, 563583865, 362204509, 606438997, 894815935, 49721736, 43588534, 841088924, 703571407, 258771291, 525460849, 233015242, 491199815, 325653075, 858892862, 519655123, 115437087, 727491564, 149427446, 582972761, 204458210, 871579136, 737982490, 129452738, 424878982, 856725917, 336920826, 730532856, 841738688, 738232572, 913319995, 816486040, 235770118, 427698004, 930569686, 569011751, 212446463, 508105319, 803897811, 496189040, 948372030, 432798655, 784691260, 809769369, 691850475, 577558004, 62715847, 947764060, 196109904, 506172286, 447735266, 980867772, 417186123, 46557919, 986790130, 277584037, 822619391, 621076591, 388367593, 68342324, 236699370, 119970164, 657351210, 878868802, 794459312, 436412351, 290870119, 503296346, 564802634, 58773734, 218770767, 842309450, 694735121, 712067611, 605426442, 634737321, 598847809, 189964014, 104895974, 463967300, 12836011, 374171101, 422839429, 769990513, 562838372, 23465799, 935303296, 758855803, 832260567, 373886738, 362866660, 831747060, 745193763, 842521525, 971131364, 323409153, 328965945, 810807795, 987986960, 514599613, 697337301, 518676386, 255182547, 320862033, 438306682, 656059329, 246817307, 296427451, 518314128, 212813255, 401599307, 322632262, 651271379, 102975853, 978392574, 171788197, 425477753, 865141598, 200230496, 352371432, 128877128, 483645145, 487174027, 207964600, 565016864, 366179929, 769999162, 980709292, 279413092, 778963675, 322935221, 775556840, 152203885, 621120920, 754303914, 144652778, 603456104, 397495432, 911648885, 161631342, 183072379, 436197254, 410415743, 654211646, 998944149, 660332881, 659092994, 407158213, 993390015, 62237745, 342306369, 807083806, 460112259, 598009122, 34231667, 354435262, 237881432, 155417941, 495370397, 996923439, 566380833, 854227389, 702509945, 42544433, 284265702, 294553519, 149363293, 27077251, 84953964, 442875086, 52560456, 900402134, 145229989, 73758817, 191009440, 854994962, 638721915, 122661714, 185868970, 77283521, 869275152, 18655948, 313026284, 709600476, 473812539, 310414874, 881320952, 952459523, 248120422, 525865505, 878780555, 987277088, 840681160, 676792790, 412115993, 140030918, 974129475, 721196483, 656805079, 905290349, 47935904, 451920705, 209356056, 551066765, 377150442, 379611973, 957219941, 151470005, 815021467, 645207971, 427463516, 863082600, 325313522, 124436219, 624577057, 614877838, 455973640, 851822937, 25478672, 694724523, 841056623, 311625157, 733217559, 234679922, 488590424, 672460808, 393534712, 496209755, 929085969, 673429468, 675205481, 477828672, 541309112, 421475544, 478494486, 773959869, 620756099, 817295158, 343366608, 474968096, 138789669, 1261477, 581929663, 193727536, 890932863, 10823177, 566850894, 774883564, 16714666, 326523886, 969386350, 297903394, 330603328, 602435368, 640131734, 422205271, 722651837, 536164302, 931111157, 119137488, 728875089, 985577117, 985476890, 17918009, 917723365, 472997173, 89115107, 916366434, 502538821, 230961609, 303908854, 617061492, 736625515, 131713887, 339453221, 738950163, 633262610, 426758031, 238112917, 779917917, 838020550, 66019448, 650675847, 778117049, 610691432, 213274580, 385410347, 146924004, 364868172, 467790003, 719723336, 134820272, 752419541, 477278067, 249134595, 704095466, 475445405, 736299900, 879265925, 152926089, 845846141, 495967193, 279498385, 571884448, 188818617, 160584873, 477296264, 718325160, 376134972, 29944771, 994040918, 900529668, 502667072, 63109761, 493032874, 781301515, 461834757, 82343644, 481132313, 514447042, 33858163, 779555233, 748165656, 15592733, 72424287, 572256728, 868353288, 210902382, 873738113, 462082508, 116372507, 317994063, 320661573, 43412947, 698165915, 782179405, 544478699, 376533191, 591100852, 669522818, 718785967, 689856669, 868867194, 692259782, 326169003, 372530014, 278822874, 245059471, 536750832, 337386716, 351509954, 600150419, 771930319, 812137400, 268506281, 52663290, 576040882, 250206016, 182636529, 238498760, 83748189, 556944302, 408365242, 877381661, 687598532, 206936328, 93325077, 375585930, 311118119, 840250578],
        vec![1, 47, 1173, 20535, 281857, 3219563, 31756649, 277324867, 182983217, 698763572, 224340727, 130185913, 938338213, 457596872, 500667258, 726272186, 242531386, 490324006, 697265581, 186365736, 123707347, 149163288, 89978475, 985283339, 584841356, 785509005, 693590689, 256394211, 919078587, 671307265, 271140497, 146527772, 508423202, 678732983, 767147115, 418422439, 470469749, 411147184, 246424306, 580998273, 228726677, 964726100, 955513349, 444565758, 668191949, 622619432, 792082487, 929348032, 601983375, 875985614, 424117930, 730694027, 740975250, 920167707, 500437835, 690210005, 493329701, 913508192, 695611331, 515433292, 682059417, 760833644, 299135864, 144219873, 937695856, 872711671, 176916492, 348891212, 334587033, 49595521, 749704350, 806067034, 773327860, 183297942, 590517602, 642228939, 275941227, 305722242, 165986509, 644370063, 71211109, 994092320, 193064301, 728492690, 76982066, 397536959, 240992716, 459846893, 745186728, 715105963, 864528752, 8495685, 753272988, 61740216, 691254120, 133693721, 536597663, 806042634, 964981978, 37162518, 164112239, 637759779, 841824460, 829311498, 573961610, 622092127, 856298148, 23010232, 90428839, 608194623, 46765621, 381935126, 362962166, 452925715, 585602790, 768818647, 88708532, 942042803, 418311021, 521378251, 499003594, 126819649, 281499536, 951375086, 146412815, 883657287, 598780576, 163659546, 959278876, 560517421, 665346319, 929162776, 164983787, 77699826, 451232846, 342897676, 483260356, 399557298, 954841649, 593150358, 617703430, 292815034, 3827776, 631211917, 629217856, 387782790, 117795063, 964508694, 824603912, 347867132, 217932218, 808071571, 466159291, 919428338, 306867765, 310085680, 347929669, 103137973, 445637697, 645585557, 573817817, 596387955, 672995733, 578127218, 402908135, 115353766, 244018895, 365778204, 555835033, 188328988, 247770780, 214263457, 844226086, 575129810, 998900133, 642186262, 886066131, 9933705, 609621463, 398319031, 223920768, 209742125, 519163806, 74615456, 814536291, 217678251, 205417278, 306418059, 464475526, 330591049, 614947407, 841330174, 17421893, 462387593, 572435987, 550253368, 393354277, 125715312, 124567536, 533400012, 599797708, 528236566, 670562226, 867851657, 488086533, 312725786, 238592338, 37063455, 385067665, 487783197, 118051898, 700641656, 71282753, 435781034, 103306472, 894876554, 845215295, 848516, 105817111, 455104275, 971250603, 659938256, 173306291, 702024160, 716038595, 487118454, 170680030, 880373959, 881689085, 153725278, 74926408, 143593976, 537712434, 635112688, 530810156, 750175992, 211491335, 495469862, 938874667, 906814766, 530322450, 654580872, 345961757, 642596517, 63791230, 944154048, 670877958, 937127089, 186748489, 915912734, 209561832, 276486399, 229476817, 558761321, 226557040, 227364465, 312169979, 745218623, 741668605, 732242764, 141121784, 862165956, 612899824, 26577011, 945385273, 251793938, 946782241, 731260038, 244678083, 406380914, 904932224, 539791264, 681567161, 903979395, 522313639, 307479666, 592336384, 274405785, 808155145, 116439879, 610551965, 466693001, 783212908, 356926408, 441684284, 460337698, 929744044, 6376955, 718008169, 946348344, 771828366, 973818233, 895371075, 977137826, 380169268, 772257849, 31334848, 472603919, 411133545, 814229722, 268412684, 269984826, 925865608, 465876593, 90547760, 192297128, 107314233, 564985934, 624177562, 939350415, 164843750, 127698384, 375467125, 733175906, 272735725, 449176665, 148653187, 981408173, 518395662, 539465581, 376426572, 523018009, 244326749, 117372211, 788925566, 998562683, 66998700, 958836224, 912519308, 243826028, 372775429, 817271079, 249393258, 980817911, 290157076, 803249202, 54296904, 967950499, 259586185, 891527285, 197070576, 229312354, 227197980, 799697366, 938796541, 780082061, 90937344, 484280959, 41280132, 365255061, 357940368, 463355056, 931322797, 484716584, 549219150, 927360223, 836260928, 974511964, 168938341, 138740543, 617041490, 552137623, 940491117, 311751083, 797191757, 581186247, 747525174, 464341615, 45074367, 877273095, 118604361, 820377975, 651223472, 330450797, 299712101, 798402816, 155978336, 76119913, 279749437, 94544299, 576902970, 337821847, 762491092, 205421212, 628488971, 912880168, 293200919, 74345429, 106904237, 117214135, 997309646, 440117215, 601730010, 44099662, 275878624, 579837056, 734358196, 740396992, 105320711, 497734455, 593389397, 892951024, 375888233, 469355971, 904918031, 759963217, 159920933, 656339936, 82028185, 635763012, 494109863, 887577439, 747214684, 51704021, 870514178, 310168296, 344440919, 671389360, 63636271, 867520663, 253359253, 809561479, 515218518, 735486509, 595414813, 855063768, 809133514, 296905455, 403829884, 13706060, 521945271, 406722813, 508410711, 177195219, 735377028, 927006199, 631467156, 561281245, 747357347, 2938426, 465345595, 461810717, 851331500, 936133185, 709629669, 764183492, 336958888, 999734612, 886346709, 929391292, 283117585, 489898780, 493902211, 377860665, 233672406, 313970515, 130449778, 925311516, 829665465, 27964512, 47478431, 502231137, 77997958, 450616449, 231073347, 922519036, 577962078, 74763491, 840109600, 825429573, 325716083, 462423227, 684091307, 610980133, 146344297, 230702558, 840583842, 568780809, 837872774, 467777629, 918753619, 868791683, 692922864, 937076083, 487643358, 553595896, 717484731, 882361644, 739294901, 547711612, 781629368, 821302751, 368923697, 499416921, 374122329, 146178192, 867117817, 743635071, 435195107, 43377741, 23687167, 878990481, 99110158, 262344925, 137035868, 292609610, 625408058, 171070693, 281506530, 350758492, 515834894, 237732608, 828774443, 840832942, 431386878, 857791323, 291378943, 894741249, 559570546, 881728336, 216217018, 497590589, 210577047, 706853900, 528807154, 595327246, 243687205, 679896105, 276389715, 520651743, 981854062, 782051052, 628779694, 482906971, 308000266, 98460224, 329039027, 663453182, 866909422, 358447817, 756042580, 103701857, 530184673, 82157052, 864831037, 833622836, 129557279, 680891914, 903510655, 223117879, 584910098, 872789802, 683398377, 818673921, 424793316, 162530200, 461191009, 233747923, 764377859, 866276050, 20068038, 599500015, 419525268, 504837656, 702339633, 161478719, 731429464, 9977417, 955013204, 944736389, 868359658, 303235910, 570685307, 762022093, 973456873, 491776893, 191155949],
        vec![1, 48, 1222, 21804, 304834, 3544928, 35583250, 316123172, 530785426, 505824986, 901343166, 615485588, 789348648, 698747334, 657848248, 964586458, 476943547, 698458295, 801769019, 257736525, 542576587, 933572174, 9542546, 488292838, 779820677, 404677231, 568188493, 931045218, 340825658, 205993974, 185959269, 78058729, 445883053, 431770274, 625502333, 180277174, 804167964, 894493650, 995189957, 934651928, 779076648, 286076285, 196236261, 433504295, 796345349, 46608071, 262327913, 615865530, 569486410, 232121371, 86175778, 154003167, 455565337, 592635041, 449778081, 946011559, 315342730, 523152035, 660192808, 984322053, 918448908, 362530845, 976500024, 826353996, 979299043, 20455239, 106430716, 169990095, 856925551, 339927417, 872925000, 454748405, 844111855, 778706572, 953334777, 367875579, 54603227, 952723870, 746089521, 114899675, 378338080, 515017450, 901556480, 75514717, 118586517, 750778341, 164215503, 398032943, 932771419, 175973529, 371281707, 414155738, 136305212, 176477492, 529591042, 473449712, 104580388, 917944592, 711611694, 275529831, 657391663, 618370464, 182199238, 863262145, 671572410, 926093081, 964697471, 20599847, 886336884, 976845790, 332330830, 936899217, 469444206, 333826539, 382006323, 404644652, 86283892, 711449573, 711524895, 240243757, 137744674, 52585102, 502954368, 568353873, 424768720, 673699213, 453807002, 277591996, 614231800, 858886730, 933633627, 855960053, 795294602, 320736325, 160050137, 741837408, 875372187, 933116510, 439299086, 339530899, 998809886, 988163112, 414204450, 626581582, 425958595, 547450689, 257877182, 25212376, 487090639, 693248108, 736165691, 261048117, 530252319, 667332870, 224234420, 283256778, 493030047, 381167115, 959191937, 567700201, 408470930, 456733167, 877572444, 640070139, 177231251, 53889209, 630925282, 764167042, 903138510, 822950867, 161878067, 741376139, 620673064, 828400388, 989198090, 398235498, 335164252, 650259410, 895482301, 288920533, 986020511, 960531109, 692510577, 743863232, 159848129, 639142915, 658806616, 286815941, 569150064, 996156909, 474086872, 377428234, 108191201, 968576455, 934066962, 520785392, 648351310, 322768543, 500047228, 717012630, 366640002, 617370336, 747113890, 647615517, 420668064, 485924194, 28548015, 242698362, 20265134, 481161073, 780894508, 716872330, 925052871, 809234518, 209608950, 454869307, 42621234, 266915957, 548835092, 11648368, 200676498, 803279760, 609790836, 522043768, 787672824, 264643232, 571421826, 762085826, 854807719, 119023111, 660310435, 945098645, 838260736, 592383406, 728604232, 586121308, 18945549, 62079587, 8000021, 137221342, 936745518, 867913927, 937623778, 183088542, 624248829, 606106136, 815005922, 728188591, 164502140, 885086995, 646575964, 60630781, 250914884, 619961376, 835493684, 1794097, 350786557, 222634027, 605402916, 871984975, 140157610, 784428245, 701028584, 784157139, 199990301, 49282014, 806191394, 544636448, 696393844, 625422532, 306981977, 200109353, 819880255, 622554727, 966234587, 1715755, 884432882, 186517679, 414057470, 559202957, 356291776, 440462056, 76496043, 54502936, 82793754, 693820485, 333532789, 139408482, 538301356, 908601203, 663844984, 277481039, 494620179, 126148065, 101563902, 543304970, 40138848, 255494176, 250466774, 181548534, 183041503, 553027506, 468172977, 571880068, 685135214, 70030015, 431414252, 965377675, 285528459, 577690235, 3039911, 424468115, 149219671, 315258608, 442938842, 340124780, 620577523, 697442435, 606981307, 195766252, 513624332, 160814831, 144529981, 626344971, 929525101, 167384034, 985564306, 757660450, 674490248, 404160553, 218780132, 253152109, 588527766, 276135385, 293545669, 229980166, 406532593, 544661736, 944987368, 74067610, 979465423, 367319108, 691015763, 308068787, 270297211, 892899529, 571121326, 682341094, 508186314, 992592910, 570463576, 551864557, 443417375, 102996223, 180706669, 66278518, 547390018, 97982020, 377733797, 642211092, 809569594, 442856622, 912786312, 563198351, 549331531, 576357131, 891027263, 77805689, 816522985, 731749256, 313952972, 411776160, 795006290, 22615421, 348238413, 716260746, 223962550, 78670864, 47765882, 267128253, 587371111, 927656165, 192469863, 806624234, 136996971, 759497678, 646978177, 833527505, 472805550, 754214240, 960030895, 232746388, 490616131, 420542303, 904038549, 210637836, 74285318, 144447351, 742135765, 244372617, 87595635, 852731251, 594678505, 794681848, 228154101, 363702627, 673985808, 239196945, 836249623, 602064792, 462168907, 430511049, 331217937, 84426505, 529390112, 953694258, 768941491, 296949641, 617567965, 759210871, 554347066, 314959464, 855978152, 459336095, 416019714, 554419893, 643616814, 307318600, 193723511, 342506504, 737708842, 961578294, 644413804, 283651295, 449519877, 262823100, 438065978, 195660179, 15479674, 929627357, 712657286, 867475048, 618979059, 615899609, 290553872, 46585860, 675146342, 899293157, 138576244, 932939832, 413352510, 228638502, 577046541, 52412367, 271101119, 704058715, 716195674, 113738084, 976781966, 417637854, 201849275, 137988263, 703452509, 833173534, 774723430, 98520292, 647910333, 702073064, 101667724, 93613248, 4773372, 993672667, 598539625, 298728331, 547262186, 609550837, 42278975, 203431476, 764589375, 791435299, 273439277, 15186943, 247517820, 332116413, 672582410, 88991345, 573172714, 370502342, 495515460, 486357723, 529038430, 112617630, 9655079, 54905538, 630913486, 94540925, 694069860, 101033114, 601510215, 405093272, 877399916, 606786230, 712700446, 365826653, 440611748, 222502187, 628732942, 260127071, 415183336, 331627148, 603111841, 484627861, 252203062, 603610758, 918118836, 775502591, 558836403, 458735214, 903545723, 229008632, 239177179, 70767308, 751925156, 652119146, 980361868, 450630793, 63075950, 714904102, 795480239, 196855664, 446357279, 343343138, 751184330, 353543327, 265335039, 291055365, 141693974, 952501609, 772988967, 982806649, 295006336, 142133453, 389243658, 551050114, 837354729, 288032982, 926886748, 940810321, 996269340, 544323652, 123254721, 449847916, 164321665, 408440169, 540527971, 235735087, 384560805, 888470688, 711171300, 414716347, 219479361, 559050803, 610845133, 321258507, 296543705, 253557800, 771631909, 466270561, 966519146, 100544233, 474799959, 147649345, 956135303, 808272257, 279282920, 472357219, 422709994, 530025514, 999788009, 64593897, 709199531, 479060735, 311654131, 943520011, 427742758, 799287390, 782392773, 191335024, 830990096, 336010037, 237942831, 237453992, 695887098, 398366572, 529644737, 344086296, 862051533, 684436865, 317549101, 968659087, 366641438],
        vec![1, 49, 1272, 23124, 329180, 3895908, 39783804, 359447204, 925733384, 746545659, 165655001, 158091124, 719304162, 111160209, 171158550, 935012406, 874008903, 988755604, 608336289, 351327718, 211049418, 970686245, 441380023, 920727544, 396494781, 218114186, 934368772, 753990221, 203263446, 488226646, 946324350, 642441651, 816607227, 122420091, 629716118, 498106515, 488881569, 100763230, 814241373, 430998026, 986590664, 188596813, 238499794, 887765759, 719310391, 819612870, 840885905, 584773429, 811468143, 396065785, 368868801, 299761844, 617462619, 308704442, 206242421, 833439007, 106715469, 970135543, 972244832, 66232618, 207050932, 577078708, 955731123, 103929249, 632790957, 297717977, 280927805, 856143814, 140717794, 889342899, 570959166, 553036683, 311778062, 833874032, 321035571, 629235909, 60666525, 19636232, 889773198, 837811568, 283828621, 499062871, 459250525, 468391935, 389843786, 80632526, 462481073, 859711240, 66143264, 831825780, 518914304, 998480225, 496960804, 480385724, 483317701, 923742113, 771054094, 630267330, 478946945, 527928962, 674723787, 882998613, 123711144, 324674723, 964132061, 961988031, 65215295, 858250635, 924300325, 577545014, 241841560, 172586320, 726876085, 210684082, 897202470, 742850020, 161301259, 120853804, 344539574, 836860211, 667275920, 72688787, 930704832, 179668299, 861726583, 168665810, 834696469, 672920894, 419563732, 302874180, 454615268, 934181182, 119694911, 779976833, 216225187, 244379028, 586838513, 942544272, 397970796, 155525782, 435250288, 609294947, 697035870, 790138207, 313089121, 451259481, 904475234, 15500998, 428233316, 352796372, 805867626, 355791012, 191743365, 390372515, 86113794, 224579645, 34292553, 472538607, 244805809, 799547326, 350596592, 550928379, 248605526, 858957317, 809083222, 418025439, 717379009, 843111164, 748566980, 795763411, 344249103, 246799165, 468081584, 533360568, 97839725, 814208152, 370784820, 149643652, 648814350, 586462723, 179226570, 323415874, 413399345, 830824722, 901264775, 785155020, 673315179, 883230707, 320461657, 209574161, 896187167, 641537195, 580708044, 615201169, 907420567, 226969633, 44823693, 653925850, 618905940, 556249274, 683808190, 595045606, 406684866, 817926872, 498013040, 741888764, 255307898, 750076370, 226664326, 45791371, 138249186, 182084615, 925519009, 32002450, 507648904, 36302093, 164244320, 134446595, 176304234, 443232913, 204696272, 377207389, 330407781, 317016375, 255990328, 346121343, 776903928, 865285835, 180645765, 94169320, 523805568, 66571932, 958229276, 706032441, 157122799, 174128102, 265560802, 960871567, 814597354, 840895548, 702037, 848074074, 17426708, 276377856, 55696613, 206160180, 32721003, 453495162, 587538197, 204676036, 610254246, 936113705, 842825687, 202272844, 145230437, 624393323, 739106533, 700708897, 523328161, 691038973, 656087189, 213848962, 927815456, 921255504, 609475698, 113463094, 529085932, 807792149, 579407091, 163833313, 694176222, 471399591, 346973697, 718259544, 297359882, 892552532, 451373341, 120883534, 8029910, 624607649, 606649877, 815313728, 231664869, 673443919, 615486405, 94571095, 110823650, 950289120, 646876432, 928906934, 684469503, 297251947, 919054473, 285157267, 967739040, 274416446, 465229888, 656873003, 825576691, 53305194, 539107135, 609069516, 669008004, 585520763, 526072937, 91836656, 101778461, 538228891, 424599066, 719851020, 234795290, 701214554, 914481398, 497763115, 504286064, 212679726, 409710596, 134500525, 154608785, 554889670, 267547678, 851784437, 749366191, 681515762, 587313005, 604179607, 297539881, 51380469, 30897443, 988568867, 430543091, 168358864, 325894509, 131217074, 122226126, 289735266, 2541560, 697428098, 339809826, 339814711, 568813016, 256466301, 865405619, 710940331, 7424767, 660900037, 729644940, 444, 450105203, 690939247, 459755659, 92556107, 42398758, 782901298, 483436309, 73995240, 784415989, 602791285, 655683750, 744368335, 684929720, 939318197, 1937536, 94209990, 544006669, 195169186, 297173575, 151918090, 559870646, 425964491, 818978660, 571568643, 60393204, 415731654, 547756555, 991386612, 383053326, 997830526, 963081859, 107336308, 898219937, 906988404, 550036125, 981857264, 691293427, 481189647, 501756531, 316529056, 476096058, 168221459, 165690115, 553028411, 960794528, 453386272, 963889156, 71983103, 494867184, 462967097, 635240847, 989817132, 23786457, 968645733, 163475174, 884798755, 971346358, 8231228, 947835970, 751371876, 21594745, 702982989, 997528759, 30899466, 874470660, 839706683, 64336797, 183002010, 415355406, 851375333, 802315034, 662347966, 459017349, 83113197, 807783874, 686211775, 665742332, 548408223, 38712773, 947065654, 224142524, 544199777, 554457822, 161813447, 59932464, 324817969, 826816639, 159675767, 610260222, 802832692, 962264291, 230527850, 654881259, 493134625, 56109407, 491401533, 163680598, 892934948, 889185132, 78662275, 741528574, 616484511, 204394884, 120980232, 4959172, 884202370, 468625389, 987185268, 797914336, 292935354, 542176515, 965256954, 25044127, 701524209, 669825969, 264620823, 983915826, 463815578, 325409981, 142164710, 946513145, 626025918, 890502327, 456729879, 921471703, 889764153, 10834930, 550258959, 888111963, 456661896, 560525119, 254574198, 379302005, 359197537, 748972811, 432885247, 174603143, 495215302, 304225805, 499574, 89067439, 956588800, 479903186, 900293862, 918419160, 874312513, 779518268, 750190343, 34999197, 204187488, 29703716, 310295240, 212734818, 705461990, 880565621, 542764103, 578132976, 871657196, 920555643, 635330221, 603836039, 905337022, 446003049, 531829391, 914627500, 109964459, 793773872, 883594493, 588890899, 761763418, 850946563, 47045637, 406265955, 398330580, 175033998, 98562597, 74022406, 109783010, 888406279, 62923507, 851720727, 920064661, 659715101, 731241623, 740764931, 68490942, 26861674, 832409630, 156628069, 65837301, 277330611, 504531610, 621094682, 513712789, 824543274, 863846088, 522929299, 50674845, 205053841, 391074024, 703020653, 598865065, 977680558, 126857946, 571772915, 596794646, 195429545, 328266420, 36051456, 451216030, 522276964, 948367998, 561406981, 389510759, 585943971, 108053297, 459413669, 288907310, 136029766, 802792879, 520247265, 414339912, 337619243, 597859489, 40005835, 350918, 321070418, 199829979, 141119131, 515535428, 350920730, 314377413, 808898947, 900198037, 799762368, 570476717, 244997759, 402733111, 626061442, 103647198, 938528989, 898060580, 652361018, 641847472, 149112119, 134262079, 887185896, 606038263, 859408453, 950373236, 692335861, 405660442, 565431386, 959094106, 393940636, 423632434, 612413824, 143336067, 663257107, 9730523, 471491852, 112828340, 936303905, 998673093, 55233966, 416039620, 144081002, 565258672, 539355694, 202448366, 14002378, 539019751, 307827209, 288622328, 788194350, 570120788, 965430343, 472467292],
    ];

    read!(n = usize, k = usize);
    if k % 2 == 1 {
        println!("0");
    } else if ans[n-1].len() <= k/2 {
        println!("0");
    } else {
        println!("{}", ans[n-1][k/2]);
    }
}